![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
败毒
这个作者很懒,什么都没留下…
展开
-
java中的Comparable和Comparator
Comparable:使用Comparable一般都是通过类去实现此接口的,在类的内部去实现这个方法,所以一般人也称作为内部比较器(相对于Comparator来说),有好多的java原生的类都是实现了这个接口,比如String,....。public interface Comparable<T> {//如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。 ...转载 2019-07-26 21:53:57 · 167 阅读 · 0 评论 -
java内存占用过高或者cpu占用过高解决
1.top命令Linux命令。可以查看实时的内存或cpu使用情况。进入后按M为按内存占用大小排序。按P为按cpu占用大小排序。通过top命令找到cpu或者内存占用较高的进程的pid2.cpu占用过高2.1 top -H -p [pid] 查看进程中的线程,得到cpu占用高的线程的tid2.2 jstackt [pid] | grep [tid] (tid要转换为16进制...原创 2019-09-15 16:39:03 · 1728 阅读 · 0 评论 -
java类中各成员的初始化顺序
如果B类继承自A类,那么new B类时,类的初始化顺序:1.父类【静态成员】和【静态代码块】,按在代码中出现的顺序依次执行。2.子类【静态成员】和【静态代码块】,按在代码中出现的顺序依次执行。3.父类的【普通成员变量被普通成员方法赋值】和【构造代码块】,按在代码中出现的顺序依次执行。4.执行父类的构造方法。5.子类的【普通成员变量被普通成员方法赋值】和【构造代码块】,按在代码中出现的顺...原创 2019-09-07 08:19:06 · 160 阅读 · 0 评论 -
java设计模式
1.设计模式的三大分类设计模式分为三大类:创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。 结构型模式:通过对多个类和对象进行组合得到复杂结构的类,一般使用继承或者成员变量引用形式来实现。 行为型模式:行为模式不仅表达了对象和类,还表达了他们之间的交互,涉及到了对象和算法的分配。每种设计模式类型包含的设计模式:创建型模式(5种):工厂方法模式,抽象工厂模式,单例...原创 2019-08-30 20:12:28 · 135 阅读 · 0 评论 -
java类加载机制
Java运行时编译源码(.java)成字节码,由jre运行。jre由java虚拟机实现。JVM分析字节码,后解释并执行。1.类的生命周期加载 :将.class文件从磁盘读到内存 连接 ...原创 2019-08-20 21:40:07 · 127 阅读 · 0 评论 -
GC算法与垃圾收集器
1.GC简介GC(Garbage Collection):即垃圾回收器,诞生于1960年MIT的Lisp语言,主要是用来回收,释放垃圾占用的空间。java GC泛指java的垃圾回收机制,该机制是java与C/C++的主要区别之一,我们在日常写java代码的时候,一般都不需要编写内存回收或者垃圾清理的代码,也不需要像C/C++那样做类似delete/free的操作。1.1.为...原创 2019-08-20 21:15:36 · 132 阅读 · 0 评论 -
java内存区域
1.JVM的基本结构JVM由三个主要的子系统构成:类加载子系统 运行时数据区(内存区域) 执行引擎2.五大内存区域从下面这张图可以看出来,Java数据区域分为五大数据区域。这些区域各有各的用途,创建及销毁时间。其中方法区和堆是所有线程共享的,栈,本地方法栈和程序虚拟机则为线程私有的。根据java虚拟机规范,java虚拟机管理的内存将分为下面五大区域。...原创 2019-08-20 20:16:12 · 227 阅读 · 0 评论 -
java内存模型
1.计算机的内存模型 在多CPU的系统中,每个CPU都有多级缓存,一般分为L1、L2、L3缓存,因为这些缓存的存在,增强了数据的访问性能,也减轻了数据总线上数据传输的压力,同时也带来了很多新的挑战,比如两个CPU同时去操作同一个内存地址,会发生什么? 基于高速缓存的存储交互虽然很好地解决了处理器与内存的速度矛盾,但是也为计算机系统带来更高的复杂度,因为它引入了一个新的问题:缓存...原创 2019-08-20 15:38:43 · 200 阅读 · 0 评论 -
List去重的方法
1. 常规元素去重// 遍历后判断赋给另一个list集合,保持原来顺序 public static void ridRepeat1(List<String> list) { System.out.println("list = [" + list + "]"); List<String> listNew = new ArrayLis...转载 2019-07-27 14:03:29 · 280 阅读 · 0 评论 -
java枚举类型
JDK1.5引入了新的类型——枚举。 在JDK1.5之前,我们定义常量都是:public static fianl....(这种方式在现在项目中也很常见) 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED,BLANK,YELLOW}public class Test {...原创 2019-09-15 17:35:38 · 159 阅读 · 0 评论