1.基本数据类型

  • 整数类型:byte, short, int, long
  • 浮点数类型:float, double
  • 字符类型:char
  • 布尔类型:boolean

不同数据类型占用的字节数不一样,假设一个方框是1字节byte

1.1 整型

Java只定义了带符号整型,因此最高位的bit表示符号位

  • byte:-128~127
  • short:-32768~32767
  • int: -2147483648 ~ 2147483647
  • long: -9223372036854775808 ~ 9223372036854775807

1.2 浮点型

float f1 = 3.14f
float f2 = 3.14e10f
double f3 = 1.79e200

对于float类型,需要加上 f 后缀

1.3布尔类型

通常JVM把boolean表示为4字节整数

1.4字符类型

char 表示一个字符,java的char除了可以表示标准的ASCll外,还可以表示一个Unicode字符

char a = ‘A’
char zh = ‘中’

char 类型使用单引号‘’,且仅有一个字符,要和使用双引号“”的字符串区分开。


2.引用类型

除了上述的基本类型的变量,剩下的都是引用类型,例如String字符串。

引用类型的变量类似于C语言的指针,它内部存储一个“地址”,指向某个对象在内存的位置。

3. 常量

定义变量时,如果加上 final 修饰符,这个变量就变成了常量
final double PI = 3.14

根据习惯,常量名通常大写。

4.var关键字

有时候,类型名太长,写起来很麻烦。例如:
StringBuilder sb = new StringBuilder();
这个时候,如果想省略变量类型,可以使用var关键字:
var sb = new StringBuilder();

5.整数运算

  • 整数相除只得到结果的整数部分
  • 整数除法对于除数为0时,运行时将保存,但编译不会报错
  • 整数由于存在范围限制,如果结果超出了范围,就会产生溢出,而溢出不会出错。
  • 移位运算:>>,<<(不带符号位),>>>,<<<(带符号位)

练习:求前n个自然数之和

public class NnumberSum {public static void main(String[] args) {int n = 100;int ans = 0;ans = (n + 1) * (n) / 2;System.out.println("ans="+ans);System.out.println(ans == 5050? "测试通过":"测试失败");}
}

## 6.浮点数运算 - 浮点数运算和整数运算相比,只能进行加减乘除这些数值计算,不能做位运算和移位运算。

  • 浮点数0.1在计算机中就无法精确表示,因为十进制的0.1换算成二进制是一个无限循环小数,很显然,无论使用float还是double,都只能存储一个0.1的近似值。但是,0.5这个浮点数又可以精确地表示。

  • 由于浮点数存在运算误差,所以比较两个浮点数是否相等常常会出现错误的结果。正确的比较方法是判断两个浮点数之差的绝对值是否小于一个很小的数.

  • 整数运算在除数为0时会报错,而浮点数运算在除数为0时,不会报错,但会返回几个特殊值:

    • NaN
    • Infinity
    • -Infinity

6.1强制类型转换

可以将浮点数强制转换为整数,在转型时,浮点数的小数部分会被丢掉。如果转型后超过了整型能表示的最大范围,将会返回整型的最大值。

int n1 = (int) 12.3; // 12
int n2 = (int) 12.7; // 12
int n2 = (int) -12.7; // -12
int n3 = (int) (12.7 + 0.5); // 13
int n4 = (int) 1.2e20; // 2147483647

如果要进行四舍五入,可以对浮点数加上0.5再强制转型

7.bool运算

7.1三元运算符

b? x : y
如果b为真则返回x,否则返回y

7.2 短路运算


8.字符与字符串

8.1字符类型

因为Java在内存中总是使用Unicode表示字符,所以,一个英文字符和一个中文字符都用一个char类型表示,它们都占用两个字节。要显示一个字符的Unicode编码,只需将char类型直接赋值给int类型即可

8.2 字符串类型

  • 和char类型不同,字符串类型String是引用类型,我们用双引号"…"表示字符串。一个字符串可以存储0个到任意个字符.
  • 当字符串包含双引号等特殊符号时,需要使用转义字符 /
  • 字符串使用 + 连接,如果+号连接了其它数据类型,会将其他数据类型自动转换为字符串。
  • 所谓的引用类型和python里的变量相同,引用类型指向内存中的某个地址,重新赋值时,只是修改了指向的地址

8.3空值null

引用类型的变量可以指向一个空值null,它表示不存在,即该变量不指向任何对象。
例如:String s1 = null
String s2; // 没有赋初值值,s2也是null
String s3 = s1; // s3也是null
String s4 = “”; // s4指向空字符串,不是null

注意要区分空值null和空字符串"",空字符串是一个有效的字符串对象,它不等于null。


## 数组类型

public class Main {public static void main(String[] args) {// 5位同学的成绩:int[] ns = new int[5];ns[0] = 68;ns[1] = 79;ns[2] = 91;ns[3] = 85;ns[4] = 62;}
}
  • 数组类型 [],例如 int[],和单个基本类型变量不同,数组变量初始化必须使用new int[5]表示创建一个可以容纳5个int元素的数组.
  • 数组所有元素初始化为默认值,整型都是0,浮点型都是0.0,布尔型都是false
  • 数组一旦创建,大小就不可改变
  • 数组索引从0开始
  • 可以使用 数组变量.length获取数组大小
  • 可以在定义数组时直接指定初始化的元素,这样就不必写出数组大小,而是由编译器自动推算数组大小
public class Main {public static void main(String[] args) {// 5位同学的成绩:int[] ns = new int[] { 68, 79, 91, 85, 62 };System.out.println(ns.length); // 编译器自动推算数组大小为5}
}

字符串数组

如果数组元素不是基本类型,而是一个引用类型,那么,修改数组元素会有哪些不同?

字符串是引用类型,因此我们先定义一个字符串数组:

String[] names = {"ABC", "XYZ", "zoo"
};

JAVA基础——基本类型相关推荐

  1. 在java中为什么_属性绑定到类型_方法绑定到对象_13. Java基础之类型信息(RTTI和反射)...

    一. Java反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据"类的部分已经的信息"来还原"类的全部的信息".这里"类的部 ...

  2. Java基础__Integer类型中的自动装箱

    Integer类型的自动装箱:就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱. ...

  3. Java基础—char类型数据

    char类型介绍 char类型原本表示单个字符,但由于Unicode字符集扩充,导致有些字符需要使用两个char来描述 大小: 一个char类型占两个字节,16位 范围: 为十进制数 0 ~ 6553 ...

  4. JAVA基础 装箱类型

    java 装箱类型总结 概述 在java中有这8种基本类型:char.byte.short.int.long.float.double.boolean,但它们没有属性与方法,为了解决了这个问题,包装类 ...

  5. java基础——包裹类型

    public class baoguo{ //包裹类型 /的第一个字母也是大写的 new =创建 public static void main(String[]args){ //基础类型 包裹类型 ...

  6. Java基础-基本类型

    一.基本类型 ​ 8种基本类型,其中4种整型,两种浮点型,一种表示unicode的字符类型,一种布尔类型 1.整型 ​ 1)int :4字节,32位 ​ 2)short:2字节,16位 ​ 3)lon ...

  7. Java 基础【12】 日期类型

    java api中日期类型的继承关系 java.lang.Object --java.util.Date --java.sql.Date --java.sql.Time --java.sql.Time ...

  8. java基础(十) 深入理解数组类型

    戳上面的蓝字关注我们哦! 精彩内容 精选java等全套视频教程 精选java电子图书 大数据视频教程精选 java项目练习精选 1. 数组类简介   在java中,数组也是一种引用类型,即是一种类. ...

  9. java 类说明,java基础类型说明

    一.java基础类型分为4类8种分别为: 四类分为: 整数类型 浮点类类 字符类型 布尔类型 八种分别为: 整数类型: byte short int long 浮点类型: float double 字 ...

最新文章

  1. php人员权限管理(RBAC)
  2. iOS 11开发教程(十七)iOS11应用视图之使用按钮接收用户输入
  3. 谈谈你对摩尔定律的理解,摩尔定律当前还是继续有效的吗?
  4. 华理c语言设计网上作业,华东理工大学第一学年第二学期网上作业参考答案C语言设计1...
  5. qt中的数据库可以创建在主函数中吗_在qt中怎么建立数据库
  6. 递归函数反向显示单链表
  7. HDU 6264 Super-palindrome
  8. TOJ3651确定比赛名次
  9. Git曝最危险漏洞,允许攻击者远程执行代码!
  10. 树中两个节点的最低公共祖先节点
  11. android 鼠标大小设置,BlueStacks安卓模拟器不能调整屏幕窗口大小用鼠标拖拽也不能...
  12. 远程控制客户端使用教程-multiDesk
  13. AD13中对工程进行编译出现的error
  14. 为什么需要public static void main(String[] agrs)这个方法
  15. 珠海市世鸿置业有限公司5周年线下交流会带你学会用基金理财
  16. 绿联蓝牙发射器 linux,绿联蓝牙发射器 Switch蓝牙耳机完美解决方案
  17. Scratch中设置物体的中心点
  18. 微软宣布任命前MOTO亚太总裁梁念坚为中国区CEO
  19. android 辅助功能(无障碍)
  20. 移动跨平台ReactNative动画组件Animated【14】

热门文章

  1. 学c语言要掌握的英语单词,学习C语言需要理解的英语单词
  2. js前端可视化 | 单位平面向量旋转的数学原理与计算
  3. iOS推送证书显示“此证书不受信任”
  4. MISC 部分入门套路和心得
  5. setwd的cannot change working directory处理
  6. 淘客漏洞群用的什么机器人_目前淘客返利机器人是不是很火,大家都是用什么返利机器人的?...
  7. 勇敢突破,迈出第一步。
  8. 欧盟委员会遭受DDoS攻击 服务器离线数小时
  9. 铁道飞虎[Railroad Tigers]
  10. DNS Reply Flood防御原理