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. java 集合差运算_用一个参数的JAVA程序实现集合的交并差运算
  2. 计算机控制综合应用题,计算机网络管理综合应用题
  3. 【数据结构与算法】之深入解析“格雷编码”的求解思路与算法示例
  4. 『ACM-算法-动态规划』初识DP动态规划算法
  5. 【译】XNA Shader 程序设计(二)
  6. 蚂蚁金服自研数据库OceanBase如何登顶TPC-C
  7. Apache Kafka 迎来了“后浪”
  8. Shell(6): 多线程操作及线程数
  9. bad response Not Found 404
  10. jquery.nicescroll.min.js滚动条插件的用法
  11. JavaScript url 编码转换
  12. c语言写测试地下水流速,《C语言》课程教学大纲 总学时:总学时64;理论44;实验20 学分:3.5 .doc...
  13. 英文演讲稿(3-5分钟)
  14. python爬取中央气象台台风网当前台风实况和预报数据
  15. xmake中add_files的使用
  16. 样式的层级关系,选择器优先级,样式冲突,以及抽离样式模块怎么写,说出思路,有无实践经验
  17. 这样写的邮件,客户回复率几乎高达100%
  18. 人过青年,我们的黄金时代过去了吗?
  19. 利用付费QQ群轻松躺着赚钱我是如何做到的
  20. 【SD2.0大会】刘振飞:微软Office研发成功三大法宝

热门文章

  1. SpaceX“超级高铁”设计原型曝光,时速可高达每小时760英里
  2. 数据结构与算法之美笔记(十四)B+树
  3. WIN10 + Ubuntu 16.04 双系统安装教程
  4. MySQL报错:IntegrityError: (1062, “Duplicate entry ‘111‘ for key ‘id‘“)
  5. 华为鸿蒙os用时间长了会卡吗,外媒再放狠话!华为鸿蒙OS系统和安卓没区别:同样也会越用越卡顿...
  6. C语言 任意次方后的三位数
  7. 贝尔维尤的无人驾驶汽车网络要来啦!
  8. 成为你自己的新贵:如何开始低代码手机开发
  9. 手机文档怎样通过计算机打印,惠普M1218怎么使用手机打印文件?电脑与电脑之间怎么共享打印机打印?...
  10. 2018年天源迪亚杯博弈赛后的感受