HelloWorld搬运工

HelloWorld搬运工

G1与CMS垃圾回收

G1 GC,全称Garbage-FirstGarbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信熟悉JVM的同学们都不会对它感到陌生。在JDK 9中,G1被提议设置为默认垃圾收集器(JEP 24...

2018-06-13 20:00:33

阅读数:35

评论数:0

类加载器与双亲委派模型

类加载器加载类的开放性类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己决...

2018-05-27 14:42:34

阅读数:22

评论数:0

Java命令学习系列(零)——常见命令及Java Dump介绍

一、常用命令:在JDK的bin目彔下,包含了java命令及其他实用工具。jps:查看本机的Java中进程信息。jstack:打印线程的栈信息,制作线程Dump。jmap:打印内存映射,制作堆Dump。jstat:性能监控工具。jhat:内存分析工具。jconsole:简易的可视化控制台。jvisu...

2018-05-23 08:20:54

阅读数:30

评论数:0

Java命令学习系列(四)——jstat

jstat(JVM Statistics Monitoring Tool)是用于监控虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形的服务器上,它是运行期定位虚拟机性能问题的首选工具。jstat位于java的bin...

2018-05-23 08:15:29

阅读数:22

评论数:0

Java命令学习系列(三)——Jmap

什么是堆Dump堆Dump是反应Java堆使用情况的内存镜像,其中主要包括系统信息、虚拟机属性、完整的线程Dump、所有类和对象的状态等。 一般,在内存不足、GC异常等情况下,我们就会怀疑有内存泄露。这个时候我们就可以制作堆Dump来查看具体情况。分析原因。基础知识常见内存错误:outOfMemo...

2018-05-23 08:13:03

阅读数:37

评论数:0

Java命令学习系列(二)——Jstack

jstack是java虚拟机自带的一种堆栈跟踪工具。功能jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿...

2018-05-23 08:09:55

阅读数:25

评论数:0

Java高级特性入门——泛型、反射和注解

本次的分享主要围绕以下三个方面:一、泛型介绍二、反射机制三、注解的使用一、泛型介绍在日常编程的过程中,泛型在这三个特性之中使用频率是最高的。”泛型”一词中的泛字可以理解为泛化的意思,即由具体的、个别的扩大为一般的。Oracle对泛型的官方定义是:泛型类型是通过类型参数化的泛型类或接口。一言以蔽之,...

2018-05-20 21:53:05

阅读数:36

评论数:0

jdk命令行工具详解

由于java jdk命令行工具比较重要,加之看到一篇不错的总结,所以接下来详细讲解。很多java开发人员一旦发现应用无法响应、首先查看一下日志、在查找日志无果的情况下动不动就重启java应用先让其正常工作了再说。还有更为夸张的是听到过制作定时脚本每天半夜定时重启、并笑着说重启解决一切问题。这种解决...

2018-05-16 22:17:21

阅读数:15

评论数:0

jvm基础总结概述

一、运行时数据区域程序计数器记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。虚拟机栈每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。可...

2018-05-14 21:13:07

阅读数:17

评论数:0

jdk8队列接口类汇总解析

这段时间研究了一下消息队列,关于消息队列选型可以参看《消息队列选型》。根据公司业务需要最终选择了RocketMQ,关于RocketMQ的安装应用可以参看之前如下文章。《阿里消息队列使用》《RocketMQ Java应用—NormalProducer(普通)模式》《阿里消息队列Java应用》Rock...

2018-05-06 22:27:10

阅读数:36

评论数:0

PDF中动态添加图片和文字

公司在另一个项目中有个关于PDF的操作,在PDF中动态添加图片和文字。我们公司操作PDF的功能还蛮多的。不用说了,基于以前的技术积累,优先考虑itextpdf的实现方式。网上搜索后发现itextpdf也确实是比较好的实现。具体实现思路比较简单,使用福昕阅读器或adobe acrobat软件来为需要...

2018-05-06 22:23:53

阅读数:126

评论数:0

MapReduce思路生成PDF大文件解决方案

最近一段时间公司搞个项目,其中有个将数据按照一定的格式生成PDF文件的功能。在网上搜寻以后决定采用itextpdf插件来实现生成PDF的功能。最初的生成思路比较老套,简单四句话,将要输出的格式做成html,在程序中读取html文件,从数据库获取数据替换html文件中的替换符,用itextpdf将h...

2018-05-06 22:22:57

阅读数:16

评论数:0

为什么HashMap非线程安全

上篇《HashMap底层数据结构原理》我们介绍了HashMap的底层实现方式。其中我们说HashMap是非线程安全的,那么这篇我们就来详细解释为什么HashMap是非线程安全的。小明:老师,上次讲了HashMap的底层实现原理,学到很多东西。但是HashMap为什么非线程安全呢,一直想不明白。可以...

2018-05-06 22:15:27

阅读数:12

评论数:0

Java多线程编程概述

在开发中我们经常使用线程来优化程序,提高系统执行效率,今天我们就来简单概述一下Java开发过程中需要了解的多线程知识点。一、进程与线程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。线程,有时被称为轻量级进程(Ligh...

2018-05-06 22:11:33

阅读数:11

评论数:0

Java的常见误区与细节

1   在Java中,没有goto语句。因为大量使用goto语句会降低程序的可读性和可维护性,所以Java语言取消了goto的使用。同时,为了避免程序员自行使用goto所带来的混乱,Java语言仍将goto定义为一个关键字,但是没有定义任何语法,故称为“保留字”。2   true、false和nu...

2018-03-05 21:34:41

阅读数:32

评论数:0

Java开发必会的Linux命令

作为一个Java开发人员,有些常用的Linux命令必须掌握。即使平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器机器交互,就要通过shell命令。本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体...

2018-02-21 21:45:26

阅读数:44

评论数:0

Java进阶知识点6:并发容器背后的设计理念 - 锁分段

一、背景容器是Java编程中使用频率很高的组件,但Java默认提供的基本容器(ArrayList,HashMap等)均不是线程安全的。当容器和多线程并发编程相遇时,程序员又该何去何从呢?通常有两种选择:1、使用synchronized关键字,将对容器的操作有序错开,确保同一时刻对同一个容器只存在一...

2018-02-21 16:54:43

阅读数:37

评论数:0

Java随机数的几种有趣用法

众所周知,随机数是任何一种编程语言最基本的特征之一。而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数。看似简单,但有时我们也会忽略了一些有趣的功能。我们从书本上学到什么?最明显的,也是直观的方式,在Java中生成随机数只要简单的调用:java.lang.Math.random()在所有...

2018-02-21 16:41:18

阅读数:44

评论数:0

Java锁有哪些种类,以及区别

一、公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象。对于Java ReentrantLock而言,通过构造函数指定该锁是否是公平锁,默认是非公平锁。...

2018-02-21 16:34:59

阅读数:22

评论数:0

Java 8 开发顶级技巧

我使用Java 8编码已经有些年头,既用于新的应用程序,也用来迁移现有的应用,感觉是时候写一些我发现的非常有用的“最佳实践”。我个人并不喜欢“最佳实践”这个说法,因为它意味着“一刀切”的解决方案,而编码不可能是这样的工作方式——我们需要亲自去发现什么样的解决方案才是有效的。但是我发现了一些Java...

2018-02-21 16:30:07

阅读数:30

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭