Java基础总结100~200集

强制类型转换

  1. 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级。
  2. 2.char类型可以保存int常量,但不能保存int的变量。
  3. bye和short类型运算时,当做int类型处理。
short s = 12;//ok
s = s-9 ; //no int->short
byte b =10; //ok
b = b+11; //no int ->byte
b = (byte)(b+11)//yes 使用强转
short t =s+b;//错误,只要有byte和short运算,结果自动提升成int类型

基本数据类型和String类型的转换

  • 基本数据类型转String类型,将基本数据类型的值+''''即可
  • String类型转基本数据类型:通过基本类型的包装类调用parseXX方法即可。
String s5 ="123";
int num1 = Inter.paseInt(s5);
double num2 = Double.paseInt(s5);
  • 在将String类型转换成基本数据类型时,要确保String类型能够转成有效类型,比如可以把“123”,转成一个整数,但是不能把“hello”转成一个整数
  • 如果格式不正确,就会抛出异常,程序就会终止。

逻辑运算符

  • 短路与&&
  • 逻辑与&

特点:两个条件都为true,结果为true

&&与逻辑与的区别:

  • &&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false,效率高
  • &逻辑与:不断第一个条件是否为false,第二个条件都要判断,效率低下

注意:在开发中,我们使用的基本时短路与&&。效率高。

  • 短路或||
  • 逻辑或|

特点:两个条件只要有一个条件成立,结果为true。

||与|的使用区别:

  • 短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true。
  • 逻辑或:不管第一个条件是否为true,第二个条件都要判断。
  • 逻辑异或^

特点:a^b:逻辑异或,当a和b不同时,则结果为true,否则为false

  • 取反操作!

特点:a!当a为ture时,结果为false。

运算符优先级

标识符的明明规则和规范

标识符概念

  1. java对各种变量、方法和类等命名时使用的字符序列成为标识符
  2. 凡是自己可以起名的地方都叫标识符

标识符的命名规范

  1. 由26个字母大小写,0-9,_或者¥组成
  2. 数字不可以开头
  3. 不可以使用关键字和保留字,但能包含
  4. Java中严格区分大小写,无长度限制
  5. 标识符不能包含空格

标识符的命名规范

  1. 包名:多单词组成时所有字母都小写
  2. 类名、接口名:多单词组成时,所有单词的首字母大写
  3. 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写
  4. 常量名:所有字母都大写,多个单词用下划线连接:XXX_YYY_ZZZ

保留字

现有的Java版本尚未使用,但是以后的版本可能作为关键字使用,自己命名是要注意避免使用。

进制

#二进制:以0b或者0B开头
#八进制:以数字0开头
#十六进制:0-9及A(10)-F(15),或者以0或0X开头表示。此处的A-F不区分大小写

进制转换问题

  • 其他进制转2进制

规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2/8/16的(位数-1)次方,然后求和。

  • 其他制转二进制

规则:将该数不断除以2、8、16,直到商为0为止,然后将每一步的余数倒过来,就是对应的二进制

  • 二进制转换成八、十六进制

规则:从低位开始,将二进制数每三位、四位一组,转成对应的八进制数

  • 八进制转成二进制

规则:将八进制数每一位,转成对应的一个3位的二进制数即可。

  • 十六进制转成二进制

规则:将十六进制数每一位,转成对应的一个4位的二进制数即可。

原码、反码、补码

  1. 二进制的最高位是符号位:0表示正数,1表示负数
  2. 正数三码合一都是它本身
  3. 负数的反码:符号位不变,其它位取反
  4. 负数的补码:它的反码加1
  5. 负数的反码:它的补码-1
  6. 0的反码补码都是0
  7. Java没有无符号数,Java的数都是有符号的
  8. 在计算机运算的时候,都是以补码的方式运算的
  9. 当我们看到运算结果的时候,要看他的原码

位运算符

&与、|或、~非

算数右移>>:低位溢出,符号位不变,并用符号位补溢出的高位

算数左移<<:符号位不变,低位补0

逻辑右移>>> 也叫无符号右移,运算规则是:低位溢出,高位补0

注意没有<<<符号

switch分支结构

  1. 表达式的数据类型,应和case后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符串,而常量是int
  2. switch(表达式)中表达式的返回值必须是:(byte、short、int、char、enum、String)
  3. case子句中的值必须是常量,而不是变量
  4. defalut子句是可选的,当没有匹配的case时,执行default
  5. break语句用来执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾。

break语句

用来终止某个语句块儿的执行,一般使用在switch或者循环中

二维数组的JVM内存

对象的内存布局

类与对象的内存分配机制

  • 类和对象的内存分配机制

Java内存的结构分析:

  1. 栈:一般存放基本数据类型
  2. 堆:存放对象(Cat cat,数组等)
  3. 方法区:常量池(常量,比如字符串),类加载信息
  4. 示意图

Java创建对象的流程简单分析

Person p = new Person();
p.name = "jack";
p.age = 10;
  1. 先加载Person类信息(属性和方法信息,只会加载一次)
  2. 在堆中分配空间,进行默认初始化(看规则)
  3. 把地址赋给p,p就指向对象。
  4. 进行指定初始化

方法的调用机制

成员方法

  • 返回类型
  1. 一个方法多个返回值
  2. 返回类型可以是任意类型,包含基本类型或引用类型
  3. 如果方法要求有返回数据类型,则方法体重最后的执行语句必须为return,要求返回值类型必须与return的值类型一致或兼容
  4. 如果方法是void,则方法体中可以没有return语句,或者只写return
  • 方法名
  1. 遵循驼峰命名法,最好见名知意,表达出该功能的意思即可
  • 参数列表
  1. 一个方法可以有0个参数,也可以有多个参数,中间用逗号隔开
  2. 参数类型可以为任意类型,包含基本类型或引用类型
  3. 方法定义时的参数称为形式参数,简称形参;方法调用时的参数称为实际参数,简称实参,实参要和形参的类型一致或兼容、个数、顺序必须一致
  • 方法体
  1. 写完成功能的具体语句,可以为输入、输出、变量、运算、分支、循环、方法调用
posted @ 2022-03-31 16:30  漩涡的眼睛  阅读(58)  评论(0)    收藏  举报