![](https://img-blog.csdnimg.cn/20200626115639638.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaSE
javaSE面试高频点
计算机毕业设计小曾
关注我
展开
-
java虚拟机的结构(反射+类加载器+jvm内存结构+GC)
java虚拟机的结构Class Loader:依据特定格式,加载class文件到内存 Execution Engine:对命令进行解析 Native Interface:融合不同开发语言的原生库为java所用 Runtime Data Area:jvm内存空间结构模型java的反射机制什么是java的反射机制将类的各个组成部分(成员变量,构造方法,普通方法)封装为其他对象(也就是Class类对象),这就是java的反射机制获取Class对象的方式方式Class.f.原创 2020-08-22 15:30:43 · 188 阅读 · 0 评论 -
IO流(字符流+缓冲字符流+字节流+缓冲字节流)
目录字节流&&缓冲字节流字符流&&缓冲字符流字节流&&缓冲字节流字节流输出写入数据一次写一个字节数据public class file { public static void main(String[] args) throws IOException { FileOutputStream fileOutputStream = new FileOutputStream("fos.txt",tr...原创 2020-08-18 23:27:10 · 121 阅读 · 0 评论 -
HashSet与TreeSet的实现原理(通俗易懂)
List中元素是可以重复,是有序的(这里无序是指存入元素的先后顺序与输出元素的先后顺序不致)Set中元素不可以重复,是无序的(这里无序是指存入元素的先后顺序与输出元素的先后顺序不一致)下面我分别从重排序性和唯一性谈谈Set中的HashSet和TreeSetHashSet:内部的数据结构是哈希表,是线程不安全的。HashSet的重排序是通过哈希算法实现。可以看到插入的数据,经过...原创 2020-05-06 13:26:27 · 904 阅读 · 1 评论 -
java面向对象的三大特征(封装,继承,多态)
封装:将类的某些信息隐藏于类的内部,不允许外部程序直接访问,而是通过该类对外提供的接口(get/set方法)实现对隐藏信息的操作和访问private的成员变量。通过方法来操作成员变量大大提高了安全性继承:继承可以使子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。提高了代码的复用性(多个类相同的成员可以放到同一个类中),提高了代码的可维护性(如果方法代码需要修改,修改一处即可),但是继承让类与类之间产生了关系,类的耦合性增强,当父类发生变化时子类也不得不跟着变化,削弱了子类的独立性原创 2020-08-17 20:35:47 · 166 阅读 · 0 评论 -
方法的重载与重写的区别(简洁扼要)
方法重载:多个方法在同一个类中 多个方法具有相同的方法名 多个方法的参数不同,包括参数不同或者数量不同方法重写:子类中出现了和父类中一模一样的方法声明,当子类需要父类的功能,而功能主体子类有自己的内容时,可以重写父类的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容 私有方法不能被重写,因为父类的私有成员子类不能继承 子类的访问劝降不能更低(public>默认>私有)...原创 2020-08-17 18:12:33 · 132 阅读 · 0 评论 -
自增变量赋值的入栈出栈操作
理论知识:赋值=,最后计算 =右边的从左到右加载值依次压入操作数栈 实际先算哪个,看运算符的优先级 自增,自减操作都是直接修改变量的值,不经过操作数栈 最后赋值之前,临时结果也是存储在操作数栈中程序实现:分析: ...原创 2020-06-26 15:58:04 · 543 阅读 · 3 评论 -
单例模式的设计思想和代码实现
单例模式:Singleton:在Java中即指单例设计模式,它是软件开发中最常见的设计模式 单:唯一 例:实例 单例设计模式,即某个类在整个系统中只能出现一个实例,对象可被获取和使用的代码模式 例如:代表JVM运行环境的Runtime类要点:一是某个类只能有一个实例(构造器私有化) 二是它必须自行创建这个实例(含有一个该类的静态变量来保存这个唯一的实例) 三是它必须自行向整个系统提供这个实例(可以直接暴露,也可以用get方法)几种常见形式:饿汉式:直接创建对象,不存在线程安全问题原创 2020-06-26 21:52:57 · 213 阅读 · 0 评论 -
类初始化和实例初始化详细过程分析
类初始化的过程:一个类要创建实例需要先加载并初始化该类 main方法所在的类需要先加载和初始化 一个子类要初始化需要先初始化父类 一个类初始化就是执行<clinit>()方法(该方法由静态变量显示赋值代码和静态代码块组成,并且从上到下顺序执行一次)实例初始化过程:实例化就是执行<init>()方法() <init>()方法可能重载有多个,有几个构造器就有几个<init>方法 <init>()方法由非静态实例变量显示赋值代码和非静原创 2020-06-26 23:00:05 · 104 阅读 · 0 评论 -
方法的参数传递机制底层原理
方法的参数传递机制:形参是基本数据类型,则传递数据值 形参的引用数据类型,则传递地址值(特殊的类型:String,包装类等对象不可变性)代码分析:package javaSE;import java.util.Arrays;public class Test4 { public static void main(String[] args) { int i = 1; String str = "hello"; Integer nu原创 2020-06-27 09:44:09 · 263 阅读 · 0 评论 -
成员(全局)变量和局部变量区别
知识点:成员变量和局部变量的区别声明的位置局部变量:方法体{}中,形参,代码块{} 成员变量:类中方法外(类变量:有static修饰;实例变量:没有static修饰)默认值成员变量没有初始化,默认值是0 局部变量必须初始化,否则编译不通过修饰符局部变量:final 成员变量:public private protected static fnal volatile transient值存储的位置局部变量:栈(用于存放局部变量表,局部变量表存放了各种基本数据类型本身,以及引用数据.原创 2020-06-27 13:05:38 · 174 阅读 · 0 评论