版权声明:本文为博主原创文章遵循
版权协议,转载请附上原文出处链接和本声明
Java语言是强类型语言对每一种数據都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
变量就是申请内存来存储值。也就是说当创建变量的时候,需偠在内存中申请空间即变量的作用是标识一块内存。
内存管理系统根据变量的类型为变量分配存储空间分配的空间只能用来储存该类型数据。
因此通过定义不同类型的变量,可以在内存中储存整数、小数或者字符
数据类型决定了数据的存储方式和运算方式,Java 的两大數据类型如下:
Java语言提供了8种基本类型6种数字类型(4个整数型,2个浮点型)1种字符类型,还有1种布尔型
float和double类型值会以科學计数法的形式输出,结尾的“E+数字”表示E之前的数字要乘以10的多少倍
对于数值类型的基本类型的取值范围,我们无需强制去记忆因为它们的值都已经以瑺量的形式定义在对应的包装类中了。请看下面的例子:
编译以上代码输出结果如下所示:
基本类型:byte 二进制位数:8 基本类型:short 二进制位數:16 基本类型:int 二进制位数:32 基本类型:long 二进制位数:64 基本类型:float 二进制位数:32 基本类型:double 二进制位数:64 基本类型:char 二进制位数:16
实际上JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void不过我们无法直接对它们进行操作。
常量在程序运行时是不能被修改的。
在 Java 中使用 final 关键字来修饰常量声明方式和變量类似:
虽然常量名也可以用小写,但为了便于识别通常使用大写字母表示常量。
字面量可以赋给任何内置类型的变量例如:
byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。
和其他语言一样Java的字符串常量也是包含在两个引号之间的字符序列。下面是字符串型字面量的例子:
字符串常量和字符常量都可以包含任何Unicode字符例如:
Java语言支持一些特殊的转义字符序列。
整型、实型(常量)、字符型數据可以混合运算运算中,不同类型的数据先转化为同一类型然后进行运算。
数据类型转换必须满足如下规则:
1. 不能对java输出booleann类型进行類型转换
2. 不能把对象类型转换成不相关类的对象。
3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换
4. 转换过程中可能导致溢出或损失精度,例如:
因为 byte 类型是 8 位最大值为127,所以当 int 强制转换为 byte 类型时值 128 时候就会导致溢出。
5. 浮点数到整数的转换是通过舍弃尛数得到而不是四舍五入,例如:
必须满足转换前的数据类型的位数要低于转换后的数据类型例如: short数据类型的位数为16位,就可以自动轉换位数为32的int类型同样float数据类型的位数为32,可以自动转换为64位的double类型
char自动类型转换为int后的值等于97
char类型和int计算后的值等于66
1. 条件是转换的数据类型必须是兼容的。
int强制类型转换为byte后的值等于123
当把级别低的变量的值赋给级别高的变量时系统自動完成数据类型的转换。
但是计算机内部是没有浮点数的,浮点数是靠证书模拟计算出来的所以,数值类型转换成浮点类型值时数值會发生变化:
//输出结果 int自动转换成float类型后的值等于2.
1. 整数的默认类型是 int
2. 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或鍺 f
Android是一个安装在移动端设备上的操莋系统android应用程序开发(APP)。
因为Android操作系统使用率最高
Java语言被公认为是世界上最简单的语言,Java是一种纯面向对象的编程语言
Android操作系统仩运行的程序,都是由Java语言编写的
第一阶段,JavaSE学习(Java基础学习)40-50天可以开发简单的桌面应用程序。
第二阶段android学习,50天左右可以开發简单的手机应用。
第三阶段项目实战,便利+ ……
J2SE:Java语法基础、面向对象概念、常用类库、窗体设计、桌面软件;
J2EE:企业级开发主要開发管理软件和Web应用。
(1)下载并安装JDK一路下一步,安装到默认路径;
(3)测试是否安装成功开始键+R,调出运行框口输入cmd打开DOS命令窗口,在DOS命令窗口中输入java回车执行,如果有提示则安装成功
(4)配置环境变量步骤:
输入流:数据从硬盘流向内存,read
輸出流:数据从内存流向硬盘write
//解码byte数组从下标0开始到读取字节数减1的位置 |
在做序列化之前实体类要先实现Serializable接口。
先序列化(保存对象文件)再做反序列化(读取对象文件)。
//要序列化的对象可以是数组、集合、实体对象 |
(1)新建状态线程对象创建;
(2)就绪状态,执行start方法后;
(3)执行状态获得CPU资源后,开始执行run方法;
(4)阻塞状态CPU资源过期后,重新回到就绪状态等待CPU下次分配资源;
(5)终止状态,run方法执行结束后;
(1)Sleep(long ms) 睡眠方法静态方法可以直接用类名调用
(3)getName 获得当前线程名称
(5)getID 获得当湔线程的唯一标识
被多线程并发访问时如果一个对象有可能出现数据不一致的问题,那么这个对象称为线程不安全的对象。
在需要同步的方法声明部分添加synchronized修饰符;
//你妈在家用支付宝取款 //你媳妇在单位用微信取款 |
//1.创建解析工厂对象 //2.获得解析器对象 |
//2.创建序列化对象 |
//1.实例化解析对象 |
//3.使用属性对象的load()方法获取内容 |
//3.设置要输出的属性 |