当前位置: 首页 > news >正文

javaSE基础

java跨平台性: Java 语言编写的程序,一次编译后,可以在多个操作系统上运行。是由于其增加了一个中间件 JVM,JVM 负责将 Java 字节码转换为特定平台的机器码,并执行。

Java 程序从源代码到运行需要经过三步:

  • 编译:将源代码文件 .java 编译成 JVM 可以识别的字节码文件 .class
  • 解释:JVM 执行字节码文件,将字节码翻译成操作系统能识别的机器码
  • 执行:操作系统执行二进制的机器码

 .class文件就是编译后生成的文件;

 Java 的基本数据类型有哪些:

数据类型默认值大小
booleanfalse1 字节或 4 字节
char'\u0000'2 字节
byte01 字节
short02 字节
int04 字节
long0L8 字节
float0.0f4 字节
double0.08 字节

java的引用数据类型有:

  • 类(class)
  • 皆苦接口(interface)
  • 数组([]

当给 Integer.MAX_VALUE 加 1 时,会发生溢出,变成 Integer.MIN_VALUE。

int maxValue = Integer.MAX_VALUE;
System.out.println("Integer.MAX_VALUE = " + maxValue); 
// Integer.MAX_VALUE = 2147483647
System.out.println("Integer.MAX_VALUE + 1 = " + (maxValue + 1)); 
// Integer.MAX_VALUE + 1 = -2147483648

// 用二进制来表示最大值和最小值
System.out.println("Integer.MAX_VALUE in binary: " + Integer.toBinaryString(maxValue)); 
// Integer.MAX_VALUE in binary: 1111111111111111111111111111111
System.out.println("Integer.MIN_VALUE in binary: " + Integer.toBinaryString(Integer.MIN_VALUE)); 
// Integer.MIN_VALUE in binary: 10000000000000000000000000000000

java中自动类型转换:

①、float f=3.4,对吗?

不正确。3.4 默认是双精度,将双精度赋值给浮点型属于下转型(down-casting,也称窄化)会造成精度丢失,因此需要强制类型转换float f =(float)3.4;或者写成float f =3.4F

②、short s1 = 1; s1 = s1 + 1;对吗?short s1 = 1; s1 += 1;对吗?

short s1 = 1; s1 = s1 + 1; 会编译出错,由于 1 是 int 类型,因此 s1+1 运算结果也是 int 型,需要强制转换类型才能赋值给 short 型。

而 short s1 = 1; s1 += 1;可以正确编译,因为 s1+= 1;相当于 s1 = (short(s1 + 1); 其中有隐含的强制类型转换。

java的拆箱装箱:

  • 装箱:将基本数据类型转换为包装类型,例如 int 转换为 Integer。
  • 拆箱:将包装类型转换为基本数据类型。

 i 是 Integer 类型,n 是 int 类型;变量 i 是包装器类,变量 n 是基本数据类型。

Integer i = 10;  //装箱
int n = i;   //拆箱

Java 5 以前 switch(expr) 中,expr 只能是 byte、short、char、int。

从 Java 5 开始,Java 中引入了枚举类型, expr 也可以是 enum 类型。

从 Java 7 开始,expr 还可以是字符串,但是长整型在目前所有的版本中都是不可以的。

java中float是怎么表示小数的?

V=\left ( -1 \right )^{S}\times M\times2^{E}

  • S:符号位,0 代表正数,1 代表负数;
  • M:尾数部分,用于表示数值的精度;比如说 3.18*2^{4};3.18 就是尾数;
  • R:基数,十进制中的基数是 10,二进制中的基数是 2;
  • E:指数部分,例如5^{8} 中的 8就是指数。

单精度浮点数占用 4 字节(32 位),这 32 位被分为三个部分:符号位、指数部分和尾数部分。 

 

  1. 符号位(Sign bit):1 位
  2. 指数部分(Exponent):10 位
  3. 尾数部分(Mantissa,或 Fraction):21 位

按照这个规则,将十进制数 25.125 转换为浮点数,转换过程是这样的:

  1. 整数部分:25 转换为二进制是 11001;
  2. 小数部分:0.125 转换为二进制是 0.001;
  3. 用二进制科学计数法表示:25.125 = 1.001001\times ×2^{4}

符号位 S 是 0,表示正数;指数部分 E 是 4,转换为二进制是 100;尾数部分 M 是 1.001001。

 

相关文章:

  • IP-Guard软件设置P2P升级功能
  • 【问题解决】Jenkins使用File的exists()方法判断文件存在,一直提示不存在的问题
  • 视觉Transformer(DETR)
  • Redis面试常见问题——集群方案
  • IntelliJ IDEA 2024.3.4 版本无法正常加载maven项目
  • frps与frpc
  • C#—csv文件格式操作实例【在winform表格中操作csv】
  • 致远电子三合一8路串口服务器
  • 基于SpringBoot的在线骑行网站的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • 学习第十一天-树
  • 定制化开发的WooCommerce独立站商城更安全
  • 极狐GitLab 正式发布安全版本17.9.1、17.8.4、17.7.6
  • JAVA入门——网络编程简介
  • coze 工作流微博关键词爬虫
  • ES中数据刷新策略refresh
  • SYSTEM文件夹下的文件
  • 什么是XSS,什么是CSP,什么是gevent
  • 文件压缩与解压工具7-Zip的安装和使用(免费)
  • 期权帮|2025年股指期货最新规则是什么?
  • Dify 开源大语言模型应用开发平台使用(一)
  • 美国失去最后的AAA主权评级,继标普、惠誉后再遭穆迪降级
  • 机器人为啥热衷“搞体育”,经济日报:是向加速融入日常生活发起的冲锋
  • 官方通报汕头违建豪宅“英之园”将强拆:对有关人员严肃追责问责
  • 梅花奖在上海|湘剧《夫人如见》竞梅,长沙文旅来沪推广
  • 戛纳打破“疑罪从无”惯例,一法国男演员被拒之门外
  • 【社论】城市更新,始终以人为核心