java基础学习-复习时的问题与解答

需要重拾Java,用到笔记的时候到了!天啊,笔记还是得上传啊,之前因为gitee不能和typora一起用图床了,不上传笔记了,因为找图片太麻烦了,前两天电脑突然打不开了要重装,本来还是自信满满我的笔记和代码都有备份,今天找之前的java笔记就没了,因为之前正好有段时间文件保存的位置很乱,还好之前有上传CSDN过,还能看!因为完全忘记了,在这篇里补上了重看笔记时产生的疑问,之前那篇有些许错别字,不太影响阅读的~

以下是问题,参考文章和自己的总结:

java se ee区别:

什么是javaEE、javaSE、javaME,这三者区别是什么?_javase javaee javame_时光成梦的博客-CSDN博客

SE是java的基石【面向对象、多线程、IO流这种基础的东西】,EE是规范(框架)【serclet、jsp、spring、mybatis这种,用于开发B/S框架软件,JavaEE 是 Java 应用最广泛的部分】,ME为嵌入式设备提供JAVA语言平台。
java基础学习-复习时的问题与解答_第1张图片

Java jdk jre vim区别:

浅谈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进行接收

我们将基本数据类型转化为引用数据类型的过程叫做装箱,相应的,我们把从引用数据类型转化为基本数据类型的过程叫做拆箱

!=instanceof什么意思

Java instanceof用法详解-CSDN博客

instanceof是Java中的二元运算符,左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回true;否则,返回false。

其中对比两者的引用需要有继承关系,最终结果的判断依据看的是指向的实际类型,是true则两者是相同的或者子类关系。

无法新建包

将src改为source root就可以新建了,相当于一个包更便于管理代码。

如何生成自己的帮助文档

IDEA创建类时添加类注释,已有的类补充类注释(详细)_idea 类注释-CSDN博客

IDEA创建类时添加类注释,已有的类补充类注释(详细)_idea 类注释-CSDN博客

switch、case的穿透现象

就是不break就会继续执行下去,一般default只会在case没有匹配成功才运行。

JAVA中的形参与实参

深入理解函数的参数——实际参数(实参)和形式参数(形参)_函数实参-CSDN博客

形参:真实传给函数的,调用时括号里的

实参:函数括号内的变量

函数的实参和形参分别储存在不同的地址中,形参的改变并不会改变实参中的数值。因为形参调用的是相应的地址中的数据,而不能调用实参地址中的数据。

形参实例化之后其实相当于实参的一份临时拷贝。

类之间的继承、依赖、组合、聚合

方法的重写,override

父类的引用可以指向子类,static的方法的调用只和左边,也就是定义的数据类型有关,和new的是什么没有什么关系,因为static已经提前加载过来了。而不是static的方法和右边的实例有关,也就是调用对象的方法,方法没有被static那样提前载入,而是实例化后才有(这才是方法的重写,方法的重写和静态无关)。

需要重写的原因:父类的功能,子类不一定都需要或者不一定满足。

内部类

static的方法和右边的实例有关,也就是调用对象的方法,方法没有被static那样提前载入,而是实例化后才有(这才是方法的重写,方法的重写和静态无关)。

需要重写的原因:父类的功能,子类不一定都需要或者不一定满足。

内部类

尤其是匿名内部类,再看当时的视频吧,看一下代码就理解了,好像多线程那里会用到。

你可能感兴趣的:(java,学习,开发语言)