0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JAVA总结1

Posted at

一:变量

// 数据类型 变量名称 = 数据 
int age = 18;

二:命名规范

①项目名/模块名/数据库表名/列名:全小写,多个单词用__连接
②包名:全小写,域名倒序
③类名:首字母大写,驼峰模式
④变量名/方法名:首字母小写,驼峰模式

三.数据类型

⭐基本数据类型:
①整型:byte short int long
②浮点型(小数):float double
③字符型:char
④布尔型:boolean
⭐引用数据类型:String类型

四.类型转换

让不同类型的数据能够进行运算或赋值

①自动类型转换:

低精度→高精度(例如从整型到浮点型的转换)
char可以转换为int类型

        //自动类型转换:int转为double
        int n = 10;
        double b = n;
        System.out.println(b);// 10.0

⭐表达式的自动类型转换:
表达式的最终结果类型由表达式中的最高类型决定
byte,short,char是直接转换成Int类型参与运算的

②强制类型转换:

高精度→低精度

        // 强制类型转换:double转为int,截断小数保留整数
        // 强制类型转换快捷键:alt+回车 再回车 
        double d = 10.5;
        int i = (int)d;
        System.out.println(i);// 10

五.运算符

①基本的算术运算符

⭐/:两个整数相除,结果还是整数(因为最高类型是整数)
⭐%:取余
⭐+:与字符串运算的时候是用作连接符的,结果依然是一个字符串

②自增自减运算符

只能操作变量,不能操作字面量

// 报错
 System.out.println(2++);

⭐放在变量前面:先对变量进行+1,-1,再拿变量的值进行运算
⭐放在变量后面:先拿变量的值进行运算,再对变量的值进行+1,-1

        // 先加后运算
        int o = 10;
        int w = ++o;
        System.out.println(w);// 11
        System.out.println(o);// 11
        // 先运算后加
        int q = 5;
        int r = q++;
        System.out.println(q);// 6
        System.out.println(r);// 5

③关系运算符

⭐>=:大于或者等于
⭐<=:小于或者等于
⭐==:等于
⭐!=:不等于
布尔值判断真假

④逻辑运算符

⭐&和&&:
全部都是true,结果才是true;有一个是false,结果为false
&&:前一个为false,后一个不进行判断了
⭐|和||:只要有一个是true,结果就是true
||:前一个为true,后一个不进行判断了
⭐非(!):你真我假,你假我真
⭐逻辑异或(∧):前后条件结果相同,为false;前后条件结果不同,为true

⑤三元运算符

格式: 条件表达式?值1:值2;
流程:首先计算关系表达式的值,如果值为true,返回值1;如果为false,返回值2

六.静态初始化数组

定义数组的时候,直接给数组赋值

①定义格式

        // 静态数组格式:
        // 数据类型[] 数组名 = {元素1,元素2...};
               int[]  ages = {12,24,36};
        // 数据变量名中存储的是数组在内存中的地址
        System.out.println(ages); // [I@4eec7777

②数组的访问

数组名称[索引]

③数组的长度属性:

数组名.length

④数组的最大索引:

数组名.length-1

        // TODO 掌握数组的访问
        int[] arr = {12,24,36};
        // 0  1  2
        // 1.访问数组的全部数据
        System.out.println(arr[0]); // 12

        // 2.修改数组中的数据
        arr[0] = 66;
        System.out.println(arr[0]); // 66

        // 3.访问数组的元素个数  数组名.length
        System.out.println(arr.length); // 3

        //4.:获取数据的最大索引  arr.length - 1 (前提是数组中存在数据)
        System.out.println(arr.length - 1); // 2

⑤数组的遍历

一个一个的访问一遍容器中的数据

        int[] ages = {12,24,36};
        for (int i = 0; i < ages.length; i++) {
            System.out.println(ages[i]); // 12 24 36
        }

七.动态初始化数组

定义数组时先不存入具体的元素值,只确定数组存储的数据类型和数组的长度

定义格式

        // 定义格式: 数据类型[] 数组名 = new 数据类型[长度]
              int[] ages = new int[3] ;//ages = [0,0,0]
        // 赋值
        ages[0] = 12;
        System.out.println(ages[0]); // 12

八.分支结构

①if分支:可以根据条件,选择执行某段代码

image.png

        // TODO 掌握if分支三种形式的用法和执行流程
        // 需求1:测量用户体温,高于37度就报警
        double t = 38.9;
        if ( t > 37 ){
            System.out.println("体温异常");// 体温异常
        }

        // 需求2;发红包:余额99元,发出90元。余额够,发红包;余额不足则需提示
        double money = 82;
        if (money >= 90){
            System.out.println("发红包!");
        }else {
            System.out.println("余额不足"); // 余额不足
        }

        // 需求3:绩效系统根据员工打分输出对应的绩效级别
        //0-60;D    60-80:C      80-90:B     90-100:A
        int score = 78;
        if (score >= 0 && score < 60){
            System.out.println("D");
        } else if (score >= 60 && score < 80) {
            System.out.println("C"); // c
        }else if (score >= 80 && score < 90) {
            System.out.println("B");
        }else if (score >= 90 && score <= 100) {
            System.out.println("A");
        }else {
            System.out.println("输入错误");
        }

②switch分支:通过比较值来决定执行哪条分支

image.png

// TODO 掌握switch的写法,理解其执行流程
        String week = "周日";
        switch(week){  // 周日 777
            case "周一":
                System.out.println("111");
                break;
            case "周二":
                System.out.println("222");
                break;
            case "周三":
                System.out.println("333");
                break;
            case "周四":
                System.out.println("444");
                break;
            case "周五":
                System.out.println("555");
                break;
            case "周六":
                System.out.println("666");
                break;
            case "周日":
                System.out.println("777");
                break;
            default:
                System.out.println("其他");
        }

九.循环结构

①for循环:控制一段代码反复执行多次

image.png

②while循环

image.png

③循环嵌套:外部循环每循环一次,内部循环会全部执行完一轮

image.png

⑩.跳转关键字

        // TODO 掌握Break和Continue的作用
        // Break:跳出并结束当前所在循环的执行
        for (int i = 1; i <= 5 ; i++) {
            System.out.println(i);
            if (i==3){     //  1 2 3
                break;// 遇到break,整个循环就结束了。跳出循环执行后续的代码。
            }
        }

        
        //Continue:跳出当前循环的当次执行,直接进入循环的下一次执行
        for (int i = 1; i <= 5 ; i++) {
            if (i == 3){  // 1 2 4 5
                continue;// 遇到continue,当次循环结束,继续进行下一轮的循环
            }
            System.out.println(i);
        }

十.方法

image.png

十一.return关键字

单独使用在无返回值方法中的作用:跳出并立即结束当前方法的执行
image.png

十二.方法参数传递

基本类型传递的是:值的副本
引用类型传递的是:地址的副本

十三.封装

之后成员变量都写为私有,用private修饰,写get/set方法。

十四.String的常用方法

image.png

 // TODO 掌握string提供的处理字符串的常用方法
        String s = "黑马Java";
        // 1.获取字符串的长度
        System.out.println(s.length());// 6

        // 2.提取字符串中某个索引位置处的字符
        char c = s.charAt(1);
        System.out.println(c);// 马

        // 字符串的遍历
        for (int i = 0; i < s.length(); i++) {
            // i = 0 1 2 3 4 5
            char ch = s.charAt(i);
            System.out.println(ch);// 黑马Java
        }

        // 3.把字符串转换成字符数组,再进行遍历
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);// 黑马Java
        }

        // 4.判断字符串内容,内容一样就返回true
        String s1 = new String("黑马");
        String s2 = new String("黑马");
        System.out.println(s1 == s2);//false
        System.out.println(s1.equals(s2));//true

        // 5.忽略大小写,比较字符串内容
        String c1 = "34AeFG";
        String c2 = "34aEfg";
        System.out.println(c1.equals(c2));//false
        System.out.println(c1.equalsIgnoreCase(c2));//true

        // 6.截取字符串内容
        String s3 = "Java是最好的编程语言之一";
        String rs = s3.substring(0,8);
        System.out.println(rs);// Java是最好的

        // 7.从当前索引位置一直截取到字符串的末尾
        String rs2 = s3.substring(5);
        System.out.println(rs2);// 最好的编程语言之一

        // 8.把字符串中的某个内容替换成新内容,并返回新的字符串对象给我们
        String info = "这个电影简直是个垃圾,垃圾电影";
        String rs3 =info.replace("垃圾","**");
        System.out.println(rs3);// 这个电影简直是个**,**电影

        // 9.判断字符串中是否包含某个关键字
        String info2 = "Java是最好的编程语言之一,我爱Java,Java不爱我";
        System.out.println(info2.contains("Java"));//true

        // 10.判断字符串是否以某个字符串开头,
        String rs4 = "张三";
        System.out.println(rs4.startsWith("张"));// true

        // 11.把字符串按照某个指定内容分割成多个字符串,放到一个字符串数组中,返回给我们
        String rs5 = "汪苏泷,魏大勋,李宇春";
        String[] names = rs5.split(",");
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i]);// 汪苏泷
                                        //魏大勋
                                       // 李宇春

十五.ArrayList集合

⭐数组定义完成并启动后,长度就固定了;集合大小可变,开发中用的更多
image.png

       // 1.创建一个ArrayList的集合对象
        ArrayList<String> list = new ArrayList<>();

        list.add("黑马");
        list.add("黑马");
        list.add("Java");
        System.out.println(list);//[黑马, 黑马, Java]

        // 2.往集合中的某个索引位置处添加一个数据
        list.add(1,"MYSQL") ;
        System.out.println(list);// [黑马, MYSQL, 黑马, Java]

        // 3.根据索引获取集合中某个索引位置处的值
        String rs =list.get(1);
        System.out.println(rs);// MYSQL

        // 4.获取集合的大小,返回集合中存储的元素个数
        System.out.println(list.size());// 4

        // 5.根据索引删除集合中的某个元素值,会返回被删除的元素值给我们
        System.out.println(list.remove(1));// MYSQL
        System.out.println(list);// [黑马, 黑马, Java]

        // 6.直接删除某个元素值,删除成功会返回true,反之返回false
        System.out.println(list.remove("Java"));// true
        System.out.println(list);// [黑马, 黑马]

        list.add(1,"html");
        System.out.println(list);//[html, 黑马]

        // 默认删除的是第一次出现的这个黑马的数据的
        System.out.println(list.remove("黑马"));// true
        System.out.println(list);// [黑马]

        // 7.修改某个索引位置处的数据,修改后会返回原来的值给我们
        System.out.println(list.set(1, "黑马程序员"));// 黑马
        System.out.println(list);// [html, 黑马程序员]

十六.static(静态)

①修饰成员变量

有stati修饰:类变量(在计算机里只有一份,会被类的全部对象共享)
某个数据只需要一份,且希望能够被共享(访问,修改),则该数据可以被定义成类变量来记住。
⭐类名.类变量

static String name;

无stati修饰:实例变量(属于每个对象的)
⭐对象.实例变量

int age;

②修饰成员方法

有stati修饰:类方法,属于类
⭐类名.类方法
无stati修饰:实例方法,属于对象
⭐对象.实例方法

十七.继承(extends)

让一个类与另一个类建立起父子关系。

特点:

子类能继承父类的非私有成员(public:成员变量/方法)

十八.方法重写

当子类觉得父类中的某个方法不好用,或者无法满足自己的需求时,子类可以重写一个方法名称,参数列表一样的方法,去覆盖父类的这个方法。
重写后,方法的访问,java会遵循就近原则
⭐注意事项:
①使用@Override注解
②子类重写父类方法时,访问权限必须大于或等于父类该方法的权限
③重写方法的返回值类型,必须与被重写方法的返回值类型一样,或者范围更小
④私有方法,静态方法不能被重写
⭐常见应用常见
子类重写Object类的toString()方法,以便返回对象的内容

十九.final

①修饰类:最终类,不能被继承了

②修饰方法:最终方法,不能被重写了

③修饰变量:该变量只能被赋值一次

二十.泛型

可以避免强制类型转换,及其可能出现的异常
本质:把具体的数据类型作为参数传给类型变量

        // <String>:list里面只能放String类型的数据
        ArrayList<String> list1 = new ArrayList<>();
        list1.add("java1");
        list1.add("java2");
        list1.add("java3");
        for (int i = 0; i < list1.size(); i++) {
        // 遍历出来的数据交给String
            String e = list1.get(i);
            System.out.println(e);
        }

⭐泛型不支持基本数据类型,只能支持引用数据类型

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?