
Java基础
pHscccr_Ayyx
新手JavaProgrammer-
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java中private、protected、public和default的区别
public: 具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。 protected: 主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西 default: 有时候也称为friendly,它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,...转载 2018-10-13 11:31:50 · 103 阅读 · 0 评论 -
MinorGC、MajorGC、FullGC的异同-自我认知
最近看JVM书籍,在GC这一章节被几种常见的GC类型困扰,根据书籍上的描述和资料查找,大致作出以下归纳,如有不对,请各位看官在评论区指正。 Minor GC: 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC。 每次 Minor GC 会清理年轻代的内存。 指发生在新生代的垃圾收集动作,因为Java对象大多都具备朝生夕死的特性,所以MinorGC非常...原创 2019-04-09 15:48:29 · 703 阅读 · 0 评论 -
Java语言中,哪些对象可作为GC Roots?
Java语言中,哪些对象可作为GC Roots? 虚拟机栈(栈帧中的本地变量表)中引用的对象; 方法区中类静态属于引用的对象; 方法区中常量引用的对象; 本地方法栈中JNI(即一般说的Native方法)引用的对象。 ...原创 2019-04-10 11:13:09 · 1077 阅读 · 0 评论 -
Java之[static]关键字的作用和用法
据现在所知,我这里总共有5种用法: static修饰类的成员变量-静态变量:在我们平时的使用当中,static最常用的功能就是修饰类的属性和方法,让他们成为类的成员属性和方法,我们通常将用static修饰的成员称为类成员或者静态成员,这句话挺起来都点奇怪,其实这是相对于对象的属性和方法来说的。static修饰的成员变量和方法,从属于类。 static修饰类的成员方法-静态方法:static的另一...原创 2019-03-22 16:54:24 · 170 阅读 · 0 评论 -
2019-Java面试总结(基础篇)
1.什么是面向对象? 把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。(这里简单的说下,具体太复杂) 简写:面向对象是程序的一种面向方式,它的程序比较集中,它有两个成员,一个是属性,一个是方法,可以更集...原创 2019-02-19 11:22:45 · 333 阅读 · 0 评论 -
反射用到了哪些接口,哪些类?反射机制中可以获取private成员的值吗?
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象. 以上的总结就是什么是反射 反射就是把...原创 2019-02-21 17:33:13 · 1460 阅读 · 0 评论 -
Java-GC(Gabage Collection)
首先,引入三个问题,通过这三个问题的步步深入来解决对GC的困惑: jvm怎么确定哪些对象应该进行回收 jvm会在什么时候进行垃圾回收的动作 jvm到底是怎么清楚垃圾对象的 这里先提到JVM运行时数据区和JVM内存结构: JVM运行时数据区由程序计数器、堆、虚拟机栈、本地方法栈、方法区部分组成,结构图如下所示。 JVM内存结构由程序计数器、堆、栈、本地方法栈、方法区等部分组成,结构图如下所...转载 2019-01-12 12:40:40 · 230 阅读 · 0 评论 -
Java内存模型
经过长时间的验证和修补,在JDK1.5发布后,Java内存模型就已经成熟和完善起来了。 主内存与工作内存 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样底层细节。此处的变量与Java编程时所说的变量不一样,指包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,后者是线程私有的,不会被共享。 Java内存模型中...转载 2018-12-26 20:28:46 · 117 阅读 · 0 评论 -
Java
1.Java基础-源码 1. 常用的设计模式 Proxy代理模式 Factory工厂模式 Singleton单例模式 Delegate委派模式 Strategy策略模式 Prototype原型模式 Template模版模式 Decorator装饰器模式 Observer观察者模式 2. Spring5源码和层次分析 Beans 1.接口实例化 2.代理Bean操作 Context 1....原创 2018-12-03 18:32:26 · 348 阅读 · 0 评论 -
【转】Java 8中HashMap和LinkedHashMap如何解决冲突
原文来自一个java大牛的博客 原文地址http://javarevisited.blogspot.jp/2016/01/how-does-java-hashmap-or-linkedhahsmap-handles.html 博客讲解了Java 8中HashMap和LinkedHashMap是如何解决冲突的。 文章目录 什么时候会产生冲突 总结 相关阅读 在Java 8 之前,HashMa...转载 2018-12-21 11:40:14 · 553 阅读 · 0 评论 -
【转】Java Collection(集合)必考面试题
Arraylist 与 LinkedList 异同 1. 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全; 2. 底层数据结构: Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向链表数据结构(JDK1.6之前为循环链表,JDK1.7取消了循环。注意双向链表和双向循环链表的区别:); 详细可阅读JDK1....转载 2018-11-28 10:20:32 · 258 阅读 · 0 评论 -
【转】如何线程安全的使用HashMap
为什么线程不安全 个人觉得HashMap在并发时可能出现的问题主要是两方面,首先如果多个线程同时使用put方法添加元素,而且假设正好存在两个put的key发生了碰撞(hash值一样),那么根据HashMap的实现,这两个key会添加到数组的同一个位置,这样最终就会发生其中一个线程的put的数据被覆盖。第二就是如果多个线程同时检测到元素个数超过数组大小*loadFactor,这样就会发生多个线程同时...转载 2018-12-02 11:18:55 · 256 阅读 · 0 评论 -
Java内存模型中,一些“天然的”先行发生(happens-before)关系
这些先行发生关系无须任何同步协助器就已经存在,可以在编码中直接使用。 如果两个操作之间的关系不在此列,并且无法从下列规则中推导出来的话,他们就没有顺序性保障,虚拟机可以任意对他们进行重排序。 先行发生是指Java内存模型中定义的两项操作之间的偏序关系,如果说操作A先行发生于操作B,其实就是说在操作B发生之前, 操作A产生的‘影响’就能被操作B观察到。‘影响’包括了修改了共享变量的值,发送了消息...原创 2019-05-05 16:02:48 · 233 阅读 · 0 评论