全部
技术
PHP
MySQL
前端
Linux
JAVA
工具
纪念日计算器
邮记星
个人记账
笔记侠
历史上的今天
生日密码
生日书
生日密码
生日花语
博古通今
三十六计
鬼谷子
笑林广记
本草纲目
山海经
唐诗宋词
宋词300首
唐诗300首
退出
登录
注册
编辑文章
选择分类
PHP
MySQL
前端
Linux
Java
工具
选择专栏
设计模式
java基础
Angular学习
Java面试题
描述:
封面图上传 :
+
点击上传图片
### java数据类型 #### 基本数据类型 (8种) 基本数据类型,不牵扯到内存分配问题 > ##### 数值型 > > - 整形: byte short int long 默认值 0 > - 浮点型 float,double 默认值 0.0 > > ##### 字符型 > > - char ,默认值 '\u0000' > > ##### 布尔型 > > - boolean 默认值 false #### 引用数据类型 (3种) 引用数据类型需要由开发者为其分配空间 - 数组,类,接口 默认值 null #### byte的特殊性 当直接为byte赋值时,虽然任何整数都属于int类型,java编译的时候发现是为byte赋值会判断赋值的整数在byte的范围里面时,会自动转化,但是如果不在这个范围,会提示用户 #### 浮点数 - 浮点数就是小数,Java中只要是小数,那么对应的数据类型就是double,默认的小数类型就是double ```java public static void main (String[] args){ float a = 10.2f; float b= 10.2f; System.out.println(a*a); } //结果是 104.03999 ``` 这个bug在jdk1.0就存在,解决不了,之能通过后期处理 最早开发的时候考虑到内存的问题都使用float,往往能使用float就不使用double,以前内存苛刻,所有往往压缩数据范围,节省空间 - 在开发过程中要考虑整型做除法时,是会舍去小数的,一点记得要做数据类型转换。 #### 字符型 char byte属于字节,一个字符=2个字节,字符除了与字节存在关系外,最主要的是可以和int进行转换 - 字符型用单引号“’” 表示 ```java public static void main (String[] args){ char a = 'A'; int b = a; System.out.println(b); } ``` 字符 'A'~'Z' 对应数字 65~90 字符'a'~'z' 对应数字97-122 #### 布尔型 只有两种取值,true或者false #### 数据类型选取原则(99%适用) - 表示整数用int,表示小数用double; - 描述日期时间或者表示文件(内存)大小用long; - 如果实现内容传递或者时编码转换用byte; - 如果实现逻辑控制用boolean - 如果使用中文,可以使用char 避免乱码问题 ### 运算符 - 四则运算 - 取模 % - ++、--操作,++在前,表示先把该变量做加1操作,再去运算,++在后,表示先拿该变量进行计算,然后=1 - 逻辑运算,短路&& (与)、短路||(或),!(非) &(与)、|(或),短路与和短路或只要前面的条记不满足后面就不执行了,单个与单个或,全部都会执行 - 10进制转2进制采用的方式就是 **除二取余,倒序** ``` 例如:25的2进制计算过程 11001 25 2 余1 ---- 12 2 余0 --- 6 2 余0 ---- 3 2 余1 --- 1 2 余1 ---- 0 ``` #### swith - swith支持int和char类型 - swith不支持布尔表达式 - 从jdk1.5开始支持enum类型 - 从jdk1.7后支持字符串 - 字符串区分大小写 #### 数组 数组初始化时。会在堆内存空间中初始化对应的数据类型的默认值, ```java int[] array = new int[3]; System.out.println(array[0]);//结果0 没有赋值之前,默认值时对应类型的默认值,int的默认值时0 System.out.println(array[1]);//结果0 System.out.println(array[2]);//结果0 ``` - 静态初始化两种形式 - int[] array = {1,2,3,4,5}; - int[] array = new int[] {1,2,3,4,5}; - 动态初始化 int[] array = new int[3];
保存文章