需要重拾Java,用到笔记的时候到了!天啊,笔记还是得上传啊,之前因为gitee不能和typora一起用图床了,不上传笔记了,因为找图片太麻烦了,前两天电脑突然打不开了要重装,本来还是自信满满我的笔记和代码都有备份,今天找之前的java笔记就没了,因为之前正好有段时间文件保存的位置很乱,还好之前有上传CSDN过,还能看!因为完全忘记了,在这篇里补上了重看笔记时产生的疑问,之前那篇有些许错别字,不太影响阅读的~
以下是问题,参考文章和自己的总结:
什么是javaEE、javaSE、javaME,这三者区别是什么?_javase javaee javame_时光成梦的博客-CSDN博客
SE是java的基石【面向对象、多线程、IO流这种基础的东西】,EE是规范(框架)【serclet、jsp、spring、mybatis这种,用于开发B/S框架软件,JavaEE 是 Java 应用最广泛的部分】,ME为嵌入式设备提供JAVA语言平台。
浅谈JDK、JRE、JVM区别与联系_jdk jre jvm三者关系-CSDN博客
JDK是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
JDK(Java Development Kit) 是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。
bin:最主要的是编译器(javac.exe)
include:java和JVM交互用的头文件
lib:类库
jre:java运行环境
JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)光有JVM还不能成class的 执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。 (jre里有运行.class的java.exe)
JVM(Java Virtual Machine),即java虚拟机, java运行时的环境,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
联系:JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。JVM+Lib=JRE。总体来说就是,我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
区别:JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持,尤其是rt.jar。
java double 赋值语句_Java中float、double、long类型变量赋值添加f、d、L尾缀问题-CSDN博客
添加尾缀说明,最好加上,例如:整数赋值给float,不加尾缀会先默认int然后进行类型转换,可能造成数据丢失。而且有时会直接报错。
一篇文章带你搞定 Java 基本数据类型和引用数据类型的区别_基本数据类型和引用数据类型区别-CSDN博客
基本数据类型只有8种:整数、浮点、字符、布尔;
①整数类型:long、int、short、byte
②浮点类型:float、double
③字符类型:char
④布尔类型:boolean
引用类型:非常多,大致包括:类、 接口类型、 数组类型、 枚举类型、 注解类型、 字符串型
例如,String类型就是引用类型,还有Double,Byte,Long,Float,Char,Boolean,Short(注意这里和基本类型相比首字母是大写)。简单来说,所有的非基本数据类型都是引用数据类型。
java中的基本数据类型一定存储在栈中的,这句话是错的!
引用数据类型是基本数据类型的包装类
一切的引用数据类型都可以使用Objec进行接收
我们将基本数据类型转化为引用数据类型的过程叫做装箱,相应的,我们把从引用数据类型转化为基本数据类型的过程叫做拆箱
Java instanceof用法详解-CSDN博客
instanceof是Java中的二元运算符,左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回true;否则,返回false。
其中对比两者的引用需要有继承关系,最终结果的判断依据看的是指向的实际类型,是true则两者是相同的或者子类关系。
将src改为source root就可以新建了,相当于一个包更便于管理代码。
IDEA创建类时添加类注释,已有的类补充类注释(详细)_idea 类注释-CSDN博客
IDEA创建类时添加类注释,已有的类补充类注释(详细)_idea 类注释-CSDN博客
就是不break就会继续执行下去,一般default只会在case没有匹配成功才运行。
深入理解函数的参数——实际参数(实参)和形式参数(形参)_函数实参-CSDN博客
形参:真实传给函数的,调用时括号里的
实参:函数括号内的变量
函数的实参和形参分别储存在不同的地址中,形参的改变并不会改变实参中的数值。因为形参调用的是相应的地址中的数据,而不能调用实参地址中的数据。
形参实例化之后其实相当于实参的一份临时拷贝。
父类的引用可以指向子类,static的方法的调用只和左边,也就是定义的数据类型有关,和new的是什么没有什么关系,因为static已经提前加载过来了。而不是static的方法和右边的实例有关,也就是调用对象的方法,方法没有被static那样提前载入,而是实例化后才有(这才是方法的重写,方法的重写和静态无关)。
需要重写的原因:父类的功能,子类不一定都需要或者不一定满足。
static的方法和右边的实例有关,也就是调用对象的方法,方法没有被static那样提前载入,而是实例化后才有(这才是方法的重写,方法的重写和静态无关)。
需要重写的原因:父类的功能,子类不一定都需要或者不一定满足。
尤其是匿名内部类,再看当时的视频吧,看一下代码就理解了,好像多线程那里会用到。