JAVA、JVM、并发、设计模式
Java及设计模式
槑!
这个作者很懒,什么都没留下…
展开
-
JVM常用参数及问题定位方法与案例
JVM参数JVM的参数类型标配参数X参数XX参数Boolean类型公式:-XX:+或者-某个属性值(+表示开启 -表示关闭)例如:-XX:+PrintGCDetails(开启GC日志)、-XX:-PrintGCDetails(关闭GC日志)KV设值类型公式:-XX:属性key=属性值value例如:-XX:MetaspaceSize=128m(设置元空间)、-XX...原创 2020-02-19 19:39:27 · 811 阅读 · 0 评论 -
JVM垃圾回收与六种OOM
垃圾回收常见的垃圾回收算法引用计数缺点:每次对对象赋值时均要维护引用计数器,且计数器本身也有一定的消耗。较难处理循环引用JVM的实现一般不采用这种方式复制Java堆从GC的角度还可以细分为:新生代(Eden区、From Survivor区和To Survivor区)和老年呆。优点:没有产生内存碎片(因为整体复制)缺点:相对浪费空间,耗时MinorGC的过程(复制...原创 2020-02-19 19:39:09 · 1131 阅读 · 0 评论 -
Java并发编程(二):具体使用
一.线程间的通信1.wait、notify、notifyAll1)何时使用在多线程环境下,有时候一个线程的执行,依赖于另外一个线程的某种状态的改变,这个时候,我们就可以使用wait与notify或者notifyAll2)wait跟sleep的区别wait会释放持有的锁,而sleep不会,sleep只是让线程在指定的时间内,不去抢占cpu的资源3)notify跟notifyAll的区别...原创 2019-08-30 15:26:00 · 707 阅读 · 0 评论 -
Java并发编程(一):基础知识
一.线程基础1.线程的状态及其相互转换NEW:初始(新创建了一个线程对象,但还没有调用start()方法)RUNNABLE: 运行(处于可运行状态的线程正在JVM中执行,但它可能正在等待来自操作系统的其他资源,例如处理器)BLOCKED:阻塞(线程阻塞于synchronized锁,等待获取synchronized锁的状态)WAITING:等待(Object.wait()、join...原创 2019-08-30 15:01:29 · 1930 阅读 · 0 评论 -
Java开发规范摘抄(一)
本篇内容来自《阿里巴巴 Java 开发手册》一、编程规约(一)命名风格【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例:_name / __name / Object/name/nameObject / name_ / nameObject/name/name / Object$【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用...原创 2019-10-29 13:38:29 · 845 阅读 · 0 评论 -
Java开发规范摘抄(二)
本篇内容来自《阿里巴巴 Java 开发手册》二、异常日志(一)异常处理【强制】Java 类库中定义的一类 RuntimeException 可以通过预先检查进行规避,而不应该通过 catch 来处理,比如:IndexOutOfBoundsException,NullPointerException 等等。说明:无法通过预检查的异常除外,如在解析一个外部传来的字符串形式数字时,通过...原创 2019-10-29 13:40:00 · 837 阅读 · 0 评论 -
JDK新特性里的常用方法
JDK8Lambda表达式函数式接口Supplier<T>Consumer<T>Function<T, R>Predicate<T>方法引用对象名 ::引用成员方法类名 ::引用静态方法类名 ::引用实例方法类名 ::new引用构造器Stream流以上几个特性主要为了更好支持函数式编程Opt...原创 2020-02-05 18:42:53 · 1008 阅读 · 0 评论 -
设计模式(四):中介者、备忘录、解释器、状态、策略、职责链
二十.中介者模式(例子:各个家电之间需要相互通知消息协同)1.基本介绍(Mediator Pattern)1) 中介者模式,用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使原先相互调用的对象耦合松散,并且可以独立地改变它们之间的交互2) 比如MVC模式,C(Controller控制器)是M(Model模型)和V(View视图)的中介者,在前后端交互时起到了...原创 2019-08-30 16:26:31 · 2149 阅读 · 0 评论 -
设计模式(三):模版方法、命令、访问者、迭代器、观察者
十五.模版方法模式(例子:按流程制作豆浆)1.基本介绍(Template Method Pattern)1) 模板方法模式,又叫模板模式,在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。2) 简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步...原创 2019-08-30 16:18:20 · 903 阅读 · 0 评论 -
设计模式(二):桥接、装饰者、组合、外观、享元、代理
七.建造者模式(例子:建房子)1.基本介绍(Builder Pattern)1) 建造者模式又叫生成器模式,是一种对象构建模式。它将复杂对象的建造过程抽象出来(抽象类别),通过不同抽象建造过程的实现类可以构造出不同表现(属性)的对象。2) 建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定对象类型和构建过程就可以构建并返回建造过后的对象,用户不需要知道内部的具体构建细节。2....原创 2019-08-30 16:06:13 · 841 阅读 · 0 评论 -
设计模式(一):单例、工厂、原型、建造者、适配器
一.UML基本介绍1.概念:统一建模语言 用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系2.类之间的关系:依赖(所有关系的本质):1) 类中用到了对方2) 如果是类的成员属性3) 如果是方法的返回类型4) 是方法接收的参数类型5) 方法中使用到 泛化: 实际上就是继承关系,他是依赖关系的特例 实现: 实现关系实...原创 2019-08-30 15:51:20 · 1587 阅读 · 0 评论 -
反射机制常用方法与示例
反射机制概述反射机制如果只是针对于普通开发者而言,意义不大,一般都是作为一些系统的架构设计去使用的,基本所有开源框架,几乎都是反射机制。反射之中包含了一个“反”的概念,所以要想解释反射就必须先从“正”开始解释,一般而言,当用户使用一个类的时候,应该先知道这个类,而后通过这个类产生实例化对象,但是“反”指的是通过对象找到类。class Person {}public class T...原创 2019-12-15 01:50:11 · 1731 阅读 · 0 评论 -
注解常用操作与示例
预置注解@Deprecated这个元素是用来标记过时的元素,编译器在编译阶段遇到这个注解时会发出提醒警告,告诉开发者正在调用一个过时的元素比如过时的方法、过时的类、过时的成员变量。public class TestDemo{ @Deprecated public void test1(){ System.out.println("test1..."); ...原创 2019-12-15 15:21:59 · 448 阅读 · 0 评论 -
正则表达式讲解与示例
正则表达式简介正则表达式最早是在Linux下发展起来的,但是由于其使用方便,在JDK 1.4的时候将其正式引入到了Java的开发行列之中,而在JDK 1.4之前如果要想使用正则表达式,那么需要单独配置一个Apache的开发包,而JDK 1.4之后除了引入了正则的支持之外,同时也对String类进行了一些修改,可以让其直接操作正则。在JDK 1.4之后专门引入了一个java.util.reg...原创 2019-12-15 01:49:54 · 460 阅读 · 0 评论 -
JDK常用类库列举与示例
StringBuffer类String类的特点:String类的对象有两种实例化方式,一种是直接赋值,只会开辟一块堆内存空间,而且对象可以自动入池,另外一种方式使用构造方法完成,会开辟两块空间,有一块空间将成为垃圾,并且不会自动入池,但是可以通过intern()方法手工入池;字符串常量一旦声明则不可改变,而字符串对象可以改变,但是改变的是其内存地址的指向;通过以上的几个特点就可以清楚的...原创 2019-12-15 01:48:03 · 674 阅读 · 0 评论 -
Java IO流超详细讲解与示例
文件操作类:File两种构造方法在Java EE的开发之中:public File(String pathname);在Android开发之中:public File(File parent, String child)。文件的基本操作创建文件:public boolean createNewFile() throws IOException;删除文件:public boo...原创 2019-12-15 01:48:37 · 1007 阅读 · 0 评论