
Java
待烟火清凉
让将来的你感谢现在努力的自己!!!
展开
-
BigData JVM垃圾收集器与垃圾回收算法
目标了解什么是垃圾回收掌握垃圾会回收的常见算法学习串行、并行、并发、G1垃圾收集器学习GC日志的可视化查看1.什么是垃圾回收1.1、Java语言的垃圾回收为了让程序员更专注于代码的实现,而不用过多的考虑内存释放的问题,所以,在Java语言中,有了自动的垃圾回收机制,也就是我们熟悉的GC。有了垃圾回收机制后,程序员只需要关心内存的申请即可,内存的释放由系统自动识别完成。换句话说,自动的垃圾回收的算法就会变得非常重要了,如果因为算法的不合理,导致内存资源一直没有释放,同样也可能会导致内存溢原创 2020-05-28 17:06:49 · 228 阅读 · 0 评论 -
BigData JVM运行参数-内存模型-MAT-命令调试-VisualJVM
目标我们为什么要学习JVM优化掌握jvm的运行参数以及参数的设置掌握jvm的内存模型(堆内存)掌握jamp命令的使用以及通过MAT工具进行分析掌握定位分析内存溢出的方法掌握jstack命令的使用掌握VisualJVM工具的使用1.我们为什么学习JVM优化在本地开发环境中我们很少会遇到对jvm进行优化的需求,一旦到了生产环境,可能将会有下面的问题:运行的应用“卡住了”,日志不输出,程序没有反应服务器的CPU负载突然升高在多线程应用下,如何分配线程的数量?……2.JVM运行参原创 2020-05-28 12:52:52 · 852 阅读 · 0 评论 -
Centos7 安装JDK1.8
目录从哪下载如何安装检测安装状态从哪下载step1: 登陆oracle官网step2:首次进入默认在首页,从图中进行跳转到下载页面step3:点击图中标红的位置step4:如果是做研发环境选择JDK,只是做运行可以只选择JRE,本文以研发为主,选择研发环境JDKstep5:目前市场主流版本是JDK1.8,需要体验更高级版本新特性选择自己所需要的版本,本文为JDK1.8step6:本文以Centos7.x版本为准,下载tar.gz 64位,大家根据自己实际情况下载对应版本即可原创 2020-05-27 10:23:31 · 1598 阅读 · 0 评论 -
Lombok使用
来源:http://blog.youkuaiyun.com/sunsfan/article/details/53542374lombok注解介绍lombok注解文档lombok官网下载lombok是一个可以帮助我们简化java代码编写的工具类,尤其是简化javabean的编写,即通过采用注解的方式,消除代码中的构造方法,getter/setter等代码,使我们写的类更加简洁,当转载 2017-09-18 14:24:42 · 443 阅读 · 0 评论 -
java并发ReentrantLock原理剖析
转载来源:http://blog.youkuaiyun.com/albertfly/article/details/52403508一、 概述本文首先介绍Lock接口、ReentrantLock的类层次结构以及锁功能模板类AbstractQueuedSynchronizer的简单原理,然后通过分析ReentrantLock的lock方法和unlock方法,来解释ReentrantLoc转载 2017-09-10 14:09:51 · 379 阅读 · 0 评论 -
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore一.CountDownLatch用法 CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。 CountDo转载 2017-09-10 14:29:22 · 311 阅读 · 0 评论 -
Java8常用语法案例
Lambda Stream Operation 时间API,可重复注解,ForkJoin效率对比案例Lambda,Stream,Operation案例使用实体package com.gcxzflgl.entity;public class Employee { private int id; private String name; private int age; pri...原创 2018-08-12 16:13:21 · 565 阅读 · 0 评论 -
java9接口私有方法
一、 使用说明Java 8 中规定接口中的方法除了抽象方法之外,还可以定义静态方法和默认的方法。一定程度上,扩展了接口的功能,此时的接口更像是一个抽象类。在 Java 9 中,接口更加的灵活和强大,连方法的访问权限修饰符都可以声明为 private 的了,此时方法将不会成为你对外暴露的 API的一部分。 二、使用案例package com.gcxzflgl;/** * @a...原创 2018-09-15 16:47:03 · 2047 阅读 · 0 评论 -
java9 try语句升级
1. 使用举例在java8 之前,我们习惯于这样处理资源的关闭:java 8 中,可以实现资源的自动关闭,但是要求执行后必须关闭的所有资源必须在try子句中初始化,否则编译不通过。如下例所示:java 9 中,用资源语句编写try将更容易,我们可以在try子句中使用已经初始化过的资源,此时的资源是final的:...转载 2018-09-15 16:50:51 · 412 阅读 · 0 评论 -
java9下划线限制
1.使用说明在java 8 中,标识符可以独立使用“_”来命名:但是,在java 9 中规定“_”不再可以单独命名标识符了,如果使用,会报错:转载 2018-09-15 16:51:37 · 892 阅读 · 0 评论 -
java9模块化系统简要说明
一.产生的背景:1.谈到 Java 9 大家往往第一个想到的就是 Jigsaw 项目。众所周知,Java 已经发展超过 20 年(95 年最初发布),Java 和相关生态在不断丰富的同时也越来越暴露出一些问题: 1).Java 运行环境的膨胀和臃肿。每次JVM启动的时候,至少会有30~60MB的内存加载,主要原因是JVM需要加载rt.jar,不管其中的类是否被classloader...原创 2018-09-15 15:39:26 · 2853 阅读 · 0 评论 -
java9REPL工具 Jshell命令
一、产生背景像 Python 和 Scala 之类的语言早就有交互式编程环境 REPL (read -evaluate - print - loop)了,以交互式的方式对语句和表达式进行求值。开发者只需要输入一些代码,就可以在编译前获得对程序的反馈。而之前的 Java 版本要想执行代码,必须创建文件、声明类、提供测试方法方可实现。二、设计理念即写即得、快速运行三、实现目标 1)...原创 2018-09-15 16:03:44 · 309 阅读 · 0 评论 -
Java并发性和多线程介绍
Java并发性和多线程介绍转载自并发编程网 – ifeve.com本文链接地址: Java并发性和多线程介绍在过去单CPU时代,单任务在一个时间点只能执行单一程序。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个CPU,并交由操作系统来完成多任务间对CPU的运行切换,以使得每个任务都有机会获得一定转载 2017-09-13 09:26:33 · 111 阅读 · 0 评论 -
java集合类Queue
简介 Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约。实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现。还有的适用于多线程的环境。java中具有Queue功能的类主要有如下几个:AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueu原创 2017-05-08 12:49:13 · 408 阅读 · 0 评论 -
冒泡排序和内置类比较排序操作
冒泡排序实现: package com.gcx.demo;/** * 冒泡排序 * @author Administrator * */public class Demo { public static void main(String[] args) { int arr[]=new int[]{12,13,14,15,23,24,35}; for(原创 2017-05-07 10:50:05 · 334 阅读 · 0 评论 -
面向对象内存分析、面向对象详解以及eclipse javabean 3s快速生成
面向对象内存分析:面向对象详解:构造方法:1. 方法名必须跟类名保持一致2. 无返回类型3. 通过new来调用4. 无参构造器问题:a) 如果我们没有手动定义构造器,系统会自动为我们添加一个无参的构造器b) 如果我们自己定义了构造器,系统就不会为我们添加无参构造器5. 构造方法的第一句总是:super,即调用直接父类的构造方法。a) 有继承关系的构造原创 2017-04-17 19:39:39 · 500 阅读 · 0 评论 -
java HelloWorld
运行结果:main方法是一个特殊的方法,是程序执行的入口,一个Java程序从main方法开始执行。Java虚拟机在执行Java程序之前会事先分配一个主线程,然后在主线程里面执行我们这个main方法,明白了吧?所以我们经常说main方法叫主线程!线程就是一个程序里面不同的执行路径!这些不理解也无所谓,总之,你就记住,Java程序从main方法开始执行,原创 2017-04-16 11:14:43 · 505 阅读 · 0 评论 -
java 命名和数据类型
注意点:1、标识符不能以数字开头2、标识符不能包含除了字母、数字、下划线、$之外的其他字符3、java内部采用了Unicode字符集,universal。数据类型基本类型有以下四种:int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、float长度数据类型有:单精度(32bits flo原创 2017-04-16 12:59:34 · 666 阅读 · 0 评论 -
java 运算符
package com.gcx.demo;public class Test { public static void main(String[] args){ double d = 10%3; System.out.println(d);//取余数结果:1.0 int a = 3; int b = a++; //执行完后,b=3。先给b赋值,再自增。 int原创 2017-04-17 00:05:11 · 237 阅读 · 0 评论 -
常用类日期处理、简单日历制作
日期类处理:package com.gcx.demo;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Grego原创 2017-05-04 17:49:27 · 521 阅读 · 0 评论 -
java异常处理机制
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。pa转载 2017-05-04 19:49:03 · 204 阅读 · 0 评论 -
list集合深入理解
list集合常用操作package com.gcx.demo;import java.util.ArrayList;import java.util.Date;import java.util.List;public class Test2 { public static void main(String[] args) { List list=new ArrayList原创 2017-05-05 10:13:38 · 404 阅读 · 0 评论 -
LinkedList基本操作
一 、概述 LinkedList与ArrayList一样实现List接口,只是ArrayList是List接口的大小可变数组的实现,LinkedList是List接口链表的实现。基于链表实现的方式使得LinkedList在插入和删除时更优于ArrayList,而随机访问则比ArrayList逊色些。 LinkedList实现所有可选的列表操作,并允许所有的元原创 2017-05-05 10:41:26 · 370 阅读 · 0 评论 -
泛型的使用及注意点
早期jdk1.5之前没有引入泛型的苦恼 package src.com.gcx.demo;/** * Object 可以接受任意类型,因为发生多态 * @author Administrator * */public class Student { private Object javase; private Object oracle; public原创 2017-05-06 18:15:10 · 362 阅读 · 0 评论 -
迭代器Iterator操作及底层实现
Iterator使用 package com.gcx.demo;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Map;import ja原创 2017-05-06 22:57:17 · 2714 阅读 · 0 评论 -
Map集合操作及简易底层实现
Map集合操作 package com.gcx.demo2;import java.util.HashMap;import java.util.Map;/** * 测试Map 基本用法 * @author Administrator * */public class Demo3 { public static void main(String[] args) { M原创 2017-05-06 14:39:58 · 500 阅读 · 0 评论 -
面向对象三大基本特性,五项基本原则
透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础.三大特性是:封装,继承,多态 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,转载 2017-04-17 18:38:12 · 351 阅读 · 0 评论