文章目录
目录
前言
初始JAVA,主要从对java的基本概念,java的数据类型,变量以及逻辑运算进行笔记记忆。
一、java是什么?
1,java是一门面向对象编程语言。
面向对象,即依靠对象的交互完成事情,主要用接口实现
2,JVM/JRE/JDK
- JVM:整个Java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
- JRE:运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。
- JDK:Java开发工具包 ,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。JDK中包含了JRE,JRE又包含JVM
3,java属于半编译半解释性文件
java源程序通过 javac 编译生成字节码文件,通过java命令运行java程序
(1)通过JDK提供的javac.exe编译器,将源文件转化为.class文件
(2)通过JRE提供的java.exe解释器,将.class文件通过JVM解释成字节码文件
4,java命名规范
- IDEA中包用小写字母,多个之间用“_”分割
- 大驼峰:定义类和源文件时
- 小驼峰:定义方法和变量时
- 常量命名规范:单词使用纯大写字母表示,多个单词使用_分割。
二、数据类型与变量
1,数据类型
java对于每一种数据都定义了明确的数据类型,并在内存中分配了不同大小的内存空间。
2,数据类型转换
(1)概念
隐式类型转换:小类型到大类型(情况1:直接赋值; 情况2:大小类型共同参与运算时)
强制类型转换:大类型到小类型
(2)特殊情况
float和long类型转换属于小类型到大类型(float和double不是按照二进制来计算的,存储是按照科学技术法存储,表示范围为2^128个数量级)
long a = 100; folat b = a; //属于小类型到大类型转换
(3)byte相加
小于四字节的类型转换问题,由于cpu在内存中进行数据读写时,默认都是按照4字节来进行读写数据的,为了硬件上实现方便,byte、short、char这种低于4字节的类型,都会提升为int类型在进行计算。
(4)String字符串
- 字符串属于引用类型变量
- 任意类型转为String,使用String中的ValueOf。如String str3 = String.valueOf(10);
- String转换为int时,可以调用Integer.parselnt(str),将字符串转换为int,前提是字符串是由纯数字组成的;
- String中的“+”用来表示拼接,如String ret = "计算结果: " + 8;
- 在进行web开发时,在网页上获取的都是字符串。
2,变量
(1)变量的默认值
- 在方法中定义的变量为局部变量,需要先进行赋值才能使用
- 在类中定义的变量存在默认值,不赋值就是各数据类型的默认值
- 静态变量static只能定义在类中
(2)常量
- 字面型常量:直接写出来的值,用双引号括起来的统称为字符串常量
- 普通常量:java定义普通常量使用final,解释为终结器,被其修饰的值和类型不会在发生变化
三、逻辑运算
四、注意事项
1,某些特定数据中可能会有某些错误数据产生
原因:所有语言都是使用0,1二进制数来模拟小数的实现。
public class DataStruct {
public static void main(String[] args) {
double a = 1.1;
double b = 1.1;
System.out.println(a*b);
//打印结果不准确,为1.2100000000000002
}
}
//TODO: 解决办法
public class DataStruct {
public static void main(String[] args) {
BigDecimal b1 = BigDecimal.valueOf(1.1);
BigDecimal b2 = BigDecimal.valueOf(1.1);
System.out.println(b1.multiply(b2));
}
}
2,Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法
3,数据类型赋值时候的溢出问题
4,做除法和取模时,右操作数不能为0