JavaSE基础(1)

1. 关键字

  • 语言规定具有特殊含义的字符串

2. 标识符

  • 标识符是用户编程时使用的名字,用于给变量、常量函数、语句块等命名

标识符命名规则:

  1. 数字/字母/_/$ 组成
  2. 不能以数字开头
  3. 不能使用关键字保留字
  4. 严格区分大小写
  5. 驼峰命名、见名知意

3. 变量

  • 能储存计算结果或能表示值的抽象概念

  • 定义/声明变量
  1. 先声明再使用
  2. 变量只能在自己的生命周期内使用
  3. 生命周期范围:{} 之间
int a;a = 1; // int a = 1;

4. 数据类型

  • 数据类型的分类
    • 变量作用范围分类:
      • 全局变量
      • 局部变量
    • 按数据类型分类
      • 基本数据类型(一个变量在其生命周期内仅代表一个值)
      • 引用数据类型
  • 基本数据类型
    • 6种数字类型
      • 4种整数型:byte、short、int、long
      • 2种浮点型:float、double
    • 1种字符类型:char
    • 1种布尔型:boolean
  • 基本数据类型详解

基本类型

存储大小

初始化默认值

取值范围

byte

1字节(8位)

0

-128~127

short

2字节

0

-32768~32767

int

4字节

0

-2^31 ~ 2^31 - 1

long

8字节

0L

-2^63 ~ 2^63 - 1

float

4字节

0.0f

符合IEEE754标准的浮点数,1.4E-45 ~ 3.4028235E38

double

8字节

0.0d

符合IEEE754标准的浮点数,4.9E-324 ~ 1.7976931348623157E308

char

2字节

'\u0000'

\u0000 ~ \uffff(十进制等效值为 0~65535,本质也是数值)

boolean

1字节/4字节

false

true/false

float类型的数据在声明时一定要加上F/f

float f = 1.0f;  //f=1.0

基本数据类型的取值范围可以查询对应包装类的常量

//int
System.out.println("基本类型:int    二进制位数:" + Integer.SIZE);
System.out.println("包装类:Integer");
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
  • 基本数据类型与引用数据类型的区别
  • 存储方式:基本数据类型直接存储值,引用数据类型存储的是对象的引用(内存地址)
  • 内存分配:基本数据类型在栈上分配内存,引用数据类型在堆上分配内存(具体内容存放在堆中,栈中存放的是其具体内容所在内存的地址)。栈上的分配速度较快,但是内存空间较小,而堆上的分配速度较慢,但可以分配更大的内存空间
  • 默认值:基本数据类型会有默认值,例如int类型的默认值是0,boolean类型的默认值是false。而引用数据类型的默认值是null,表示没有引用指向任何对象
  • 复制操作:基本数据类型进行复制时,会复制该变量的值。而引用数据类型进行复制时,只会复制对象的引用,两个变量指向同一个对象
  • 参数传递:基本数据类型作为方法的参数传递时,传递的是值的副本,不会修改原始值。而引用数据类型作为方法的参数传递时,传递的是对象的引用,可以修改对象的属性或状态
  • 比较操作:基本数据类型使用\==进行比较时,比较的是值是否相等。而引用数据类型使用\==进行比较时,比较的是引用是否指向同一个对象,如果要比较对象的内容是否相同,需要使用equals()方法

注意:Java中的包装类(Wrapper Classes)对基本数据类型进行了封装,使其也具有了对象的特性,可以调用方法和进行类型转换等操作。

5. 进制

  • 二进制(0~1):在Java中以0b开头
int i = 0b10; // 二进制10 = 2
  • 八进制(0~7):在Java中以0开头
int i = 010; // 八进制10=8
  • 十进制(0~9):人类使用的算数进制
  • 十六进制(0~9、A~F):在Java中以0x开头
int i = 0x1A; // 十六进制1A=26
  • 进制转换:
  1. 借助十进制转换
  2. 2进制直接转 八进制/ 十六进制

6. String类型

String str = "Hello World!";

7. 类型转换

自动类型转换(数据类型小转大)

  • 数据运算
byte a = 10;
int b = 20;
long c = a * b;
System.out.println("c=" + c); //200
  • 赋值
byte a = 10;
int b = a;
System.out.println("b=" + b);  //10
  • 自动类型转换顺序
double>float>long>int>short>byte
double>float>long>int>char

强制类型转换(强制类型转换有风险)

char c = 'a';
int c1 = (int)c;//c变量对应的值会自动的转为int类型,然后进行计算 c1=97

8. 运算符

  • 计算机在运算时使用的符号

计算机在运算时只有加法,借助补码进行展示

1+(-1)
原码:1  ---》 0000 0001
     -1 ---》  1000 0001
     -----------------
  		        1000 0010
反码:
	正数:原码
	负数:数字位上的数字取反
	  1  ---》 0000 0001
 	  -1 ---》 1111 1110
     ------------------
  		   	   1111 1111	
补码:(通过补码进行数字展示)
	正数:反码
	负数:数字位上的数字取反,运算的和+1
	  1  ---》 0000 0001
 	  -1 ---》 1111 1110
       ------------------
  		   	    0000 0000
8.1 算术运算符

  • 计算表达式 a++ + ++a + a++ + a++ - ++a + a++ - a++的值:4
                         2     3     4     5      6      7
    	         a++ + ++a + a++ + a++ - ++a + a++ - a++
    	           1     3     3     4     6      6      7
8.2 赋值运算符
=+=-=*=/=%=
8.3 比较运算符

8.4 逻辑运算符

// & 就是和的意思  ----只要有一个结果为假,整体结果为假
// | 就是或 的意思-----只要有一个为真,整体结果为真
// ^ 异或 ----- 相同为假 不同为真
//! 逻辑非

8.5 位运算符

&: 按位与
|:按位或
^:按位异或
<<:左移*位
>>:右移*位
>>>:无符号右移*位
/位运算符  1代表真  0 代表假
        // 4---->0000 0100
        // 3---->0000 0011
        //-------------------
        System.out.println(4&3);//0
        System.out.println(4|3);//7
        System.out.println(4^3);//7
        // 数字 << 移动的位数    数字变大 左位移符号
        // 这个二进制数是正数 ---在尾部进行补0
        // 这个二进制数是负数 ---在尾部进行补1
        System.out.println(4<<3);//8
        // 数字 >> 移动的位数    数字变小 右位移符号
        // 这个二进制数是正数 ---在前面进行补0
        // 这个二进制数是负数 ---在前面进行补1
        System.out.println(-4>>1);
        // 数字 >>> 移到的位数 数字变小 右位移符号 这个二进制数无论是正还是负 都在前面补0
        System.out.println(-4>>>1);
    }

     &&&(短路与)的区别

1.&是按位与,&&是逻辑与

- &:a&b是把a和b都转换成二进制数然后再进行与的运算;

- &&:a&&b就是当且仅当两个操作数均为 true时,其结果才为 true;只要有一个为零,a&&b就为零。

2.同为逻辑与时

- &:对前后都进行判断;

- &&:只要前面部分是false就输出false,而不继续判断后面了(短路

8.6 三目运算符
//仅适用代替简单的if else 语句
int age=17;
String s = age >= 18 ? "成年人" : "未成年人";
System.out.println(s);

  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值