Java笔记Day02(基础篇)

目  录

一、 关键字、标识符、变量

1.1 关键字

1.2 标识符

1.3 变量

二、数据类型

2.1 Java中的数据类型有哪些?

2.1.1 基本数据类型: Primary type (原生数据类型)

2.1.2 引用数据类型: References type

2.2 数据类型的作用? 

2.3 数据类型的转换

2.3.1 隐式转换(自然转换): 从小到大类型的转换

2.3.2 显示转换:强制转换 : 从大到小的转换

三、运算符

3.1 算数运算符: + ,- ,* ,/(取商),%(取余数),++ ,--

3.2 比较运算符:结果一定是boolean类型  > ,< ,>= ,<= ,!= ,== 

3.3 赋值运算符:  =

3.4 逻辑运算符: 用来判断两个布尔类型的结果

3.5 位运算符

3.6 三目运算符

四、进制

4.1 二进制

4.2 八进制: 0-7 以0开头,满8进1  

4.3 十进制: 0-9 满10进1

4.4 十六进制: 0-9 / A~F 满16进1, 以 0x / 0X 开头 (A~F不区分大小写)

五、符号位

六、左右移

6.1 左移  <<

6.2 右移  >>

6.3 无符号右移  >>>  (忽略正负)


一、 关键字、标识符、变量

1.1 关键字

         在java中已经被赋予了特殊含义
            public,class,static,void 都是关键字,关键字都是小写

1.2 标识符

        Java中,凡是自命名就是标识符;
        命名规范:
            1.由英文字母 A-Z 或 a-z 或 数字0-9 或 _ 或 $ 组成
            2.不能以数字开头,但可以包含数字
                _Test1 , T_1est , Tes1t,      正确
                1Test                                          错误
            3.不能是关键字,但可以包含关键字
                 Tclass
            4.严格区分大小写
            5.不能有空格,在一个作用域内不能重名
            6.尽量驼峰式命名
                大驼峰 / 小驼峰
            尽量见名知意

1.3 变量

        程序 = 数据结构 + 算法 + 编程语言
        变量:用来存储单个数值的空间,在内存中体现  
                age = 12;
        为什么要有变量? 用来存储最小的数据

        Java是不允许变量单独出现的,变量必须由数据类型来修修饰: 
                数据类型 age = 23; 

二、数据类型

2.1 Java中的数据类型有哪些?

  2.1.1 基本数据类型: Primary type (原生数据类型)

        8大基本数据类型:
        数值型:

                整型:默认类型是 int

字节数(Byte)位(bit)区间
byte18-128 ~ 127
short216-2^15 ~ 2^15 - 1
int432-2^31 ~ 2^31 - 1
long864-2^63 ~ 2^63 - 1

                浮点型:默认类型是 double

字节数(Byte)位(bit)
float432
double864

                布尔型: boolean   1字节     true      ( 默认值 false )
                字符型: char         2字节     char     ( 单个字符,单引号修饰 )
                        Java中的字符编码是按着 ASCII 码,在ASCII字符编码表中都有对应的数字 

  2.1.2 引用数据类型: References type

        String 类,接口,枚举,数组,注解
        String 类型:  字符串  ( 双引号修饰 )
        String name = "张三";  

public class Day02{
	public static void main(String[] args){
			
			byte a = 127;
			System.out.println(a);
			
			short b = 21;
			System.out.println(b);
		
			int age = 23;
			System.out.println(age);
			
			long c = 3423423423423423423L;
		    long cc = 34;
			System.out.println(c);
			
			float f = 22.68f;
			double d = 3.14;
			System.out.println(f);
			System.out.println(d);
	
			boolean flag = true;
			System.out.println(flag);
			
			char letter = 'A';
			System.out.println(letter);

			String name = "用户名";
			System.out.println("姓名:"+name);
	}
}

2.2 数据类型的作用? 

        修饰一个变量;变量是用来存储单个数据的;这个过程就是变量的初始化操作。
        int  a = 67;
        //声明一个变量
        int age; 

2.3 数据类型的转换

        byte a = 3;
        short s = a;  
        把 byte 类型的 a 转换为 short 类型来存储,这个过程就是数据类型的转换。

  2.3.1 隐式转换(自然转换): 从小到大类型的转换

        例如:   byte -->short -- >int --- >long 

  2.3.2 显示转换:强制转换 : 从大到小的转换

        short a = 129;
        byte b = a;

       字符类型 和 数值型: 
        char c= '男';
        char b = 132;

       浮点型和整型尽量不要做数据类型转换的操作,会出现精度损失问题
        
int a = 3.14f;  

三、运算符

         一元,二元(符号左右两边有两个数据) ,三元

3.1 算数运算符: + ,- ,* ,/(取商),%(取余数),++ ,--

        int a = 3;
        int b = 5;
        System.out.println(a+b);

一元运算符:

        ++在前 先运算 在赋值             
        ++在后 先赋值 在运算
        符号操作的是一个变量 

3.2 比较运算符:结果一定是boolean类型  > ,< ,>= ,<= ,!= ,== 

public class Day02{
	public static void main(String[] args){
		boolean result = 3 > 5 ;
		System.out.println(result);
	}
}

3.3 赋值运算符:  =

            int a = 33; 数据向左赋值

拓展赋值运算符:  += ,-= ,*= ,/=  ,%= 
            int a = 1;
            int b = 2;
            int c = a+b;
        简写:  a = a+b;
        简写:  a+=b; 

3.4 逻辑运算符: 用来判断两个布尔类型的结果

         & 单与
                true & true  结果 true
                true & false 结果 false
                false & true 结果 false
                false & false 结果 false
        && 短路与 
                true && true 结果 true 
                true && false 结果 false
                false && true 结果 false
                false && false 结果 false 
性能要比单与要好,如果左边的表达式的结果为false时,右边的表达式不参与判断,直接返回结果

        | 或 or   有一个为true 就是true 
                true | true true  
                true | false true 
                false | true  true
                false | false false                
        || 短路或   如果有一个为true 就直接返回true 
                true || true true     
                true || false true
                false || true  true   左边是false 右边参与判断
                false || false false 
        ^ 异或  相同假,不同为真
                true ^ true  false
                true ^ false true 
                false ^ true true
                false ^ false false
        !取反
                !true      false 
                !false     true 
                !(1==1)
                !(3 > 7)  

3.5 位运算符

位运算规则: 
        Java数值运算过程中都是将10进制转换位二进制然后在进行计算,在计算机运算时,都会将源码转换位补码进行运算,在把二进制数据转换位十进制展现给用户;如果二进制的符号位是0表示正数,1表示负数。
        正数的原码,反码,和补码都是一样的
        负数的反码: 符号位保持不变 ,其他位取反
        负数补码: 负数的反码 + 1
        0的反码 和补码 都是 0

位运算 & :都为1时为1,否则为0

        7 & 5
                0000 0111
                0000 0101
              -----------------
                0000 0101

位运算 | :都为0时为0,否则为1

        7 | 5 
                0000 0111
                0000 0101
              -----------------
                0000 0111

位运算 ^ :相同为0,不同为1

        6 ^ 3 = 5
                0000 0110
                0000 0011
              -----------------
                0000 0101

3.6 三目运算符

         布尔类型表达式 ? 结果1 : 结果2; 

public class Day02{
	public static void main(String[] args){
		boolean flag1 = 1 > 1 && 2 > 3 ? true : false ;
		int flag2 = 1 > 1 ? 1 : 2 ;
		float flag3 = 1 > 1 && 2 > 3 ? 0.1f : 0.2f ;
		char flag4 = 1 > 1 && 2 > 3 ? 'm' : 'f' ;
		System.out.println(flag1);
		System.out.println(flag2);
		System.out.println(flag3);
		System.out.println(flag4);
	}
}

当布尔类型表达式结果为true输出结果1,为false输出结果2  (9种:8个数据类型+一个String类型)

四、进制

        4.1 二进制

                 0000 0111 转换为10进制

00000111
2^72^62^52^42^32^22^12^0

                0000 1001 转换为10进制 

00001001
2^72^62^52^42^32^22^12^0

                对应相乘相加即可

        4.2 八进制: 0-7 以0开头,满8进1  

        4.3 十进制: 0-9 满10进1

                 十进制转二进制: 除以2 ,取余数

                        7  二进制:1个字节 8位
                            0000 0111

                        9  二进制:
                            0000 1001

        4.4 十六进制: 0-9 / A~F 满16进1, 以 0x / 0X 开头 (A~F不区分大小写)

五、符号位

            0000 0000 0000 0000 0000 0000 0000 0000

        Java整数常量默认是 int 类型,用二进制定义整数时,第32位是符号位;是 long 类型时,第64位是符号位。符号位是0表示正数,1表示负数。

        原码:数值的二进制表达
        反码:对原码按位取反,最高位(符号位)不变
        补码:正数的补码等于本身,负数的补码等于反码+1

        数字在计算机底层以二进制的形式存在;计算机以补码的形式保存所有整数。

 反码

        ~6 = -7
                0000 0110
                1000 1001

六、左右移

        6.1 左移  <<

                     -1 << 2   -1向左移动2位
                      1000 0000  0000 0000  0000 0000  0000 0001
                溢出砍断
                  1000 0000  0000 0000  0000 0000  0000 000100 低位补0 
                符号位不变    
                      1000 0000  0000 0000  0000 0000  0000 0100

        6.2 右移  >>

                     8 >> 2
                     0000 0000  0000 0000  0000 0000  0000 1000
                                                                                        溢出砍断
                         00 0000  0000 0000  0000 0000  0000 001000 高位补0

                     0000 0000  0000 0000  0000 0000  0000 0010    

        6.3 无符号右移  >>>  (忽略正负)

                被移位的二进制最高位无论是0还是1,空位都用0补。如:-1 >>> 1 = 2147483647
                十进制 -1 -> 二进制   1000 0000 0000 0000 0000 0000 0000 0001
                             二进制补码   1111 1111  1111 1111  1111 1111  1111 1111 
                                                                                                                 溢出砍断
                                                   111 1111  1111 1111  1111 1111  1111 11111    
            
                                                 0111 1111  1111 1111  1111 1111  1111 1111    

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值