狂神说java学习笔记---JAVA基础语法

JAVA基础语法

  1. 注释、标识符、关键字
  2. 数据类型
  3. 类型转换
  4. 变量、常量
  5. 运算符
  6. 包机制、JavaDoc

注释

  • 平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。
  • 注释并不会被执行,是给我们写代码的人看的
  • 书写注释是一个非常好的习惯
  • 平时写代码一定要注意规范。

java中的注释有三种:

  • 单行注释 //

  • 多行注释 /* */

  • 文档注释 /** * */
    狂神说java学习笔记---JAVA基础语法_第1张图片

标识符

*关键字

狂神说java学习笔记---JAVA基础语法_第2张图片

*关键字不能起名字

JAVA 所以的组成部分都需要名字、类名、变量名以及方法名都被称为标识符

狂神说java学习笔记---JAVA基础语法_第3张图片

1.类名; 2.方法名; 3.变量名;

标识符注意点

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始;"大小写十分敏感“
  • 首字母之后可以是字母(A-Z或者a-z),美元符($),或者下划线(_)或者数字的任何字符组合;“特殊符号不能使用”
  • 不能使用关键字作为变量名或者方法名。
  • 合法标识符举例:age、 $salary、 _value、 __1_value
  • 非法标识符举例:123abc、 -salary、 #abc
  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

数据类型

强类型语言

  • 要求变量的使用要严格符合规定,所有变量都必须先定以后才能使用;安全性高,但速度慢。

弱类型语言

Java的数据类型分为两大类

  • 基本类型(primitive type)

    整数
    byte 1字节 8位 java范围2(7)-1到-2(7)
    short 2字节 很少使用 2(15)-1到-2(15)
    int 4字节 最常用 2(31)-1到-2(31)
    long 8字节 长整形 2(63)-1到-2(63)

    小数
    float 4字节
    double 8字节

    其它
    char 2字节 无符号 2(15)-1
    boolean 1字节 代表真true or 假false

  • 引用类型(reference type)

    String 字符串

        String s = "  abccccd  ";
        System.out.println(s.charAt(2));//显示第2坐标符号
        System.out.println(s.indexOf("a"));//显示"a"所在坐标位置
        System.out.println(s.length());//显示坐标长度
        System.out.println(s.equals("ccdda"));//比对是否正确true or false
        System.out.println(s.compareTo("ABCD"));//比较大小a
        System.out.println(s.toLowerCase());//变成小写"abcd"
        System.out.println(s.toUpperCase());//变成大写"ABCD"
        System.out.println(s.trim());//当有空格存在时"  abcd  ",删除空格。
        System.out.println(s.split("b"));//从指定位置切开

狂神说java学习笔记---JAVA基础语法_第4张图片

什么是字节

  • 位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。

  • 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写B来表示。

  • 1B(byte,字节) = 8bit(位)

  • 字符:是指计算机中使用的字母、数字、字和符号

  • 1bit表示1位

  • 1Byte表示一个字节 1B=8b

  • 1024B=1KB

  • 1024KB=1M

  • 1024M=1G

整数拓展:

进制:

  • 二进制0b (Integer.toBinaryString)二进制代码

    1010转换0* 2(0)+1* 2(1)+0* 2(2)+1* 2(3)=0+2+0+8===>10

  • 十进制

    (1011)2次方,转换1* 2(3)+0* 2(2)+1* 2(1)+1* 2(0)=8+0+2+1=11(11)10次方

    123转换3* 10(0)+2* 10(1)+1* 10(2)=3+20+100

  • 八进制0 (0-7)

    067转换7* 8(0)+6* 8(1)=48+7=(55)10次方

  • 十六进制0x 0-9 A-F(10-16) (Integer.toHexString)十六进制代码

    转换10* 16(0)+15* 16(1)+14* 16(2)+9* 16(3)=10+240+3584+36864

进制转换

n进制转换10进制

公式:第一位 n(0)+第二位 n(1)+…+第x位* n(x-1)次方**

​ 二进制转十进制
​ 十进制转二进制
​ 十进制 二进制
​ 1 0001
​ 2 0010
​ 3 0011
​ 4 0100
​ 5 0101
​ 6 0110
​ 7 0111
​ 8 1000
​ 9 1001
​ 10 1010
​ 11 1011
​ 12 1100
​ 13 1101
​ 14 1110
​ 15 1111

10进制转2进制
  • 短除法:

    35:(35/2=17(余1)/2=8(1)/2=4(0)/2=2(0)/2=1(0)/2=0(1)反读)=100011
    100011 1* 2(0)+1* 2(1)+0* 2(2)+1* 2(5)=1+2+32=35(正向的)

  • 找次方数:

    35:35-2(5)=3-2(1)=1-2(0)=100011(有数的次方上加1,没有的补0)

    216:216-2(7)=88-2(6)=24-2(4)=8-2(3)=11011000

负数转换

java采用二进制补码方式
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
把1开头的认为负数
1000 -8
1001 -7
1010 -6
1011 -5
1100 -4
1101 -3
1110 -2
1111 -1

4位二进制补码能表示几个数字? 2(4)=16
最大数?2(4-1)-1 ====》7
最小数?-2(4-1) ====》-8

假设某种语言是以8位二进制补码表示数字那么范围是?
2(8-1)-1 到 -2(8-1)

二进制补码表示数据范围和位数有关如果位数是n
那么范围就是-2(n-1)到2(n-1)-1

java中整数(int)是采用的32位二进制补码表示
java int的范围是-2(31)到2(31)-1

总结2: 4位的看
7 0111 取反 = = =》1000 +1 = = = 》1001
-7 1001 取反= = = 》0110 +1 = = =》0111
负数 = 正数取反+1
正数 = 负数取反+1

狂神说java学习笔记---JAVA基础语法_第5张图片

浮点数拓展:

  • float; double 不够准确; 实际过程中浮点数无限且离散的,但是float是有限的,他会自动舍入误差,大约接近,但不等于;
  • 银行等准确的计算工具最好使用BigDecimal 数学工具类
  • 精确的对账最好完全避免使用浮点数进行比较
  • 精确的对账最好完全避免使用浮点数进行比较
  • 精确的对账最好完全避免使用浮点数进行比较

字符拓展:

所有的字符本质还是数字

Java使用Unicode字符集编码,格式’\u0000’-’\uffff’

(Unicode是世界通用的定长字符集,所有的字符都是16位,2个字节)

对于不方便输入的字符采用转义字符表示

转义字符:

如:’\n’“换行”,‘\t’“空格”,‘\’,‘\b’,‘\r’,‘"’,‘\u4e2d’.
数字编码:‘0’:48,‘1’: 49…
英文编码:‘A’:65,‘B’:66…
小写英文:‘a’ : 97,‘b’:98…

练习:

    public void zifu(String a){
     
        char[] zi = a.toCharArray();//(String)a转换字符型数组toCharArray,并赋值
        int mu = 0;  //字母
        String m1 = "";
        int s  = 0;  //数字
        String s1 = "";
        int k = 0;   //空格
        int f = 0;   //其它
        String f1 = "";
        for (int i = 0; i <zi.length ; i++) {
     
            int p = (int)zi[i];   //将zi的每一位数组转换为Int数值,用数值进行比对
            if ((65 <= p && p<=90)||(97<= p && p <= 122)) {
     //A-Z字母为65-90,a-z字母为97-122
                mu++;
                m1 = m1+zi[i]+" ";
            }else if (48<= p && p <= 57){
                       //0-9为48-57
                s++;
                s1 = s1 + zi[i] + " ";
            }else if (p==32){
                                   //空格为32
                k ++;
            }else {
     
                f++;
                f1 = f1 + zi[i] +" ";
            }
        }
        System.out.println("存在的字母个数:" + mu);
        System.out.println("存在的字母为:" + m1);
        System.out.println("存在的数字个数:" + s);
        System.out.println("存在的数字为:" + s1);
        System.out.println("存在的字符个数:" + f);
        System.out.println("存在的字符为:" + f1);
        System.out.println("存在的空格个数:" + k);
    }

    public static void main(String[] args) {
     
        System.out.println("请输入字符串:");
        Scanner scanner = new Scanner(System.in);
        String a = scanner.nextLine();
        ZiFuSuZhu ziFuSuZhu = new ZiFuSuZhu();
        ziFuSuZhu.zifu(a);
        scanner.close();
    }

类型转换:

  • 由于Java是强类型语言,所有需要有些运算的时候的,需要用到类型转换。

    低 -------------------------------------------------------------->高

    byte, short, char -> int -> long -> float -> double

    ​ (小数的优先级高于整数)

  • 运算中,不同类型的数据先转换为同一类型,然后进行运算。

  • 强制类型转换 高 - - 低

狂神说java学习笔记---JAVA基础语法_第6张图片

  • 自动类型转换

    由低到高直接输入,无需强制转换

  • 注意

    1. 不能对布尔值进行转换
    2. 不能把对象类型转换为不相干的类型
    3. 在把高容量转换到低容量的时候,需要强制转换
    4. 转换的时候可能存在内存溢出,或者精度问题!

    char转int

狂神说java学习笔记---JAVA基础语法_第7张图片

溢出问题

狂神说java学习笔记---JAVA基础语法_第8张图片

变量

  • 变量是什么:就是可以变化的量!

  • Java是一种强类型语言,每个变量都必须声明其类型。

  • Java变量是程序中最基层的存储单元,其要素包括变量名,变量类型和作用域。

  • 注意事项:

    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
    • 变量名必须是合法的标识符。
    • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

变量作用域

  • 类变量

    在类里,整个类里可以使用,前面必须加static;“static int a = 666;”

  • 实例变量

    在类里,从属于对象;“int age;//0”

    如果不自行初始化,这个类型的默认值 0,0.0

    布尔值:默认是false;除了基本类型,其他的默认值都是null;

  • 局部变量

    在方法中,使用时必须声明和初始化值;“int cba = 666;"

常量

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。

  • 所谓常量可以理解成一种特殊的变量,他的值被设定后,在程序运行过程中不允许被改变。

    final 常量名 = 值;
    final double PI = 3.14;
    
  • 常量名一般使用大写字符。

变量的命名规范

  • 所有变量、方法、类名:见名知意

  • 类成员变量:首字母小写和驼峰原则:monthSalary

  • 除了第一个单词外,后面的单词首字母大写

  • 局部变量:首字母小写和驼峰原则

  • 常量:大写字母和下划线 MAX_VALUE

  • 类名:首字母大写和驼峰原则:Man,GoodMan

  • 方法名:首字母小写和驼峰原则:run(),runRun()

你可能感兴趣的:(java)