JAVA学习

基本概念

  • 一个源文件只能有一个public类,其他类的个数不限。编译后,每一个类都对应生成一个 .class 文件
  • 源文件名与public类同名
  • javadoc注释
  • 文档注释用终端生成html文件命令
  • Java程序中 “+” 号的使用
    • 当左右两边都是数值型时,做加法运算
    • 当左右两边有一方为字符串,则做拼接运算

数据类型

引用类型

  • 接口
  • 数组

浮点数

  • Java默认浮点数是double类型,float类型要在数值后加 f/F
  • Java浮点类型保留小数点后位数
    • float – 保留小数点后7位 – C语言中保留6位
    • double – 保留小数点后16位 – C语言中保留15位
  • 字符和编码时一一对应的
  • Java中不可以用0非0来替代false和true,这点与C语言不同。
    • Boolean只能是true或者false 不能是0或者1

基本数据类型转换

自动类型转换

  • 低精度向高精度自动转换
  • byte==>short==>int==>long==>float==>double
  • char==>int==>long==>float==>double

强制类型转换

  • 高精度类型向低精度类型转换,由编写代码的人使用强制转换符号**()**进行类型转换,同时转换过程中会造成精度损失
  1. C语言中直接通过赋值号就能进行类型转换,但是也会造成精度损失,编译可以通过,但是编译器会提示警告。C语言也可以用强制类型转换符 ( 进行有精度损失的强制类型转换)
  2. Java中高精度类型向低精度类型转换必须使用强制转换符号(),会造成精度损失,否则编译无法通过,直接提示错误。
  3. 强制类型转换符只对最近的操作数有效,这点与C语言相同,C语言中是因为**()**运算符优先级高。
  1. char类型可以保存 int 类型的常量值,但是不能保存 int 类型的变量值(需要强制转换)。这点与C语言不同
  2. C语言中** 只要被char保存的值在其范围内,就可以保存,无论变量值还是常量值**;这点原因还是因为C语言中直接通过赋值号就能进行类型转换
  3. byte进行运算时,当作int类型处理,运算结果用int接收
  4. Short进行运算时,当作int类型处理,运算结果用int接收
  5. char进行运算时,当作int类型处理,运算结果用int接收

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-881UZUUn-1652873405290)(https://cdn.jsdelivr.net/gh/MCXXHYK/PicGo/202205121717674.png#crop=0&crop=0&crop=1&crop=1&id=HDf9U&originHeight=896&originWidth=1356&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)]

基本数据类型和字符串的转换

1.** 基本数据类型转字符串**:加 “”

  1. **字符串转基本数据类型 **

    • 语法:通过基本数据类型的包装类调用parseXXX方法即可

关系运算符 instanceof:检查是否是类的对象,返回值为true和false

短路与 && 、逻辑与 & 区别

  • 短路与有一个条件为假,后面条件直接不用判断,且后面代码不再执行,结果返回假;
  • 逻辑与必须要把所有条件都判断完,才会返回结果 效率低

短路或 ||、逻辑或 | 区别

  • 短路或有一个条件为真,后面条件直接不用判断,且后面代码不再执行,结果返回真;
  • 逻辑或必须要把所有条件都判断完,才会返回结果 效率低

tips:**复合赋值运算符再进行计算时会进行类型转换 **

byte b1 = 123;b1 += 1;	//等价于 b1 = (byte)(b1 + 1); //分析:按理说 b1 += 1;右边是 b1 +1 ==>int 赋值给左边byte会发生错误,																			//但是这里其实复合赋值运算符进行运算是会自动进行类型转换的//b1++也是如此//b1++等价于 b1 = (byte)(b1+1);	也会发生类型转换//细节int i = 1;i = i++;		//1) temp = i ; 2) i = i +1; 3) i = temp;  执行顺序是这样的System.out.println(i); //1int j = 0;j = i++;		//1) temp = i ; 2) i = i +1; 3) j = temp;  执行顺序是这样的	j=1int a = 1;a = ++a;System.out.println(a); //2	执行顺序 1) a = a +1; 2) temp = a ; 3) a = temp;

来源:YK@ZERO

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月16日
下一篇 2022年4月16日

相关推荐