JAVA相关
文章平均质量分 92
天涯0818
这个作者很懒,什么都没留下…
展开
-
Java高级篇 -- List选择及优化
Java高级篇 -- List选择及优化发表于2年前(2014-05-05 11:42) 阅读(616) | 评论(0) 13人收藏此文章, 我要收藏赞0摘要 Java性能优化,List选择及优化Java高级篇 Java性能优化 List选择及优化在java编程中,我们常常使用到java自带的集合类List 以下为几点简单的优化建议:转载 2016-02-14 15:58:16 · 838 阅读 · 0 评论 -
JVM 的个人见解
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:吴青海链接:http://www.zhihu.com/question/27339390/answer/36511809来源:知乎java堆(JavaHeap)1.用来存放对象的,几乎所有对象都放在这里,被线程共享的,或者说是被栈共享的2.堆又可以分为新生代和老年代,实际还有一个区域叫永久代,转载 2016-02-04 17:20:01 · 382 阅读 · 0 评论 -
线程的同步和异步
线程的同步和异步多线程和异步操作的异同 多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和异步操作的时机的区别。 异步操作的本质 所有的程序最终都会由计算机硬件来执行,所以为了更好的理解异步操作的本质,我们有必要了解一下它的硬转载 2016-02-03 15:06:30 · 260 阅读 · 0 评论 -
几种任务调度的 Java 实现方法与比较
几种任务调度的 Java 实现方法与比较综观目前的 Web 应用,多数应用都具备任务调度的功能。本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺点进行比较,目的在于给需要开发任务调度的程序员提供有价值的参考。 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任转载 2016-01-28 16:46:10 · 7717 阅读 · 0 评论 -
Java 可变参数
Java 可变参数Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。转载 2016-01-28 15:22:05 · 250 阅读 · 0 评论 -
Java线程中yield与join方法的区别
Java线程中yield与join方法的区别博客分类: Javajava长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()转载 2016-01-27 17:54:54 · 388 阅读 · 0 评论 -
JAVA技术路线图
JAVA技术路线图博客分类: 行业应用java编程 在技术方面无论我们怎么学习,总感觉需要提升自已,却又不知道从哪里着手,同时也不知道自己处于哪个水平。这时候就需要有清晰的指示图来指引我们,这样我们能清楚的知道我们在哪方面不足,以及自己大概处于哪个阶段和水平。 Java程序员高级特性反射转载 2016-01-27 17:53:29 · 1871 阅读 · 0 评论 -
进程丶线程丶CPU关系简述
进程丶线程丶CPU关系简述博客分类: java基础进程线程CPUjava面向对象 本文简单阐述了进程与线程的关系,为了便于理解,本文也将简述CPU的工作原理。 进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。或者说进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和转载 2016-01-27 17:50:29 · 12284 阅读 · 0 评论 -
Java注解-自定义注解实例
Java注解-自定义注解实例博客分类: javajava注解反射 在Java中注解随处可见,学习Java注解,知道其原理,可以读懂很多开源框架,如Spring,Mybatis等,还可以自定义注解实现更高级的功能。 一、常见的Java注解 Jdk自带的注解:@Override,@SuppressWarnings,@Deprecated转载 2016-01-27 17:46:04 · 373 阅读 · 0 评论 -
JAVA压缩图片并打成ZIP
JAVA压缩图片并打成ZIP博客分类: Javajava 引用 JAVA 获取网络图片或本地图片压缩后打成ZIP,但是获取网络流存在问题:每次获取图片流的大小不一样(图片不完整),以致无法构建图片进行压缩? Java代码 /* 释以下代码:即可获取完整图片流网络不稳定情况且网络流是顺序读取,所以获得前部份流转载 2016-01-27 17:45:29 · 2226 阅读 · 0 评论 -
使用java mail进行简单的邮件收发
今天开发过程中遇到降价通知的问题,价格下降了则发送email到指定邮箱。顺便学习下java如何进行简单的邮件收发。 sun公司提供的 java mail api能够很好的解决这个问题,下面是具体的思路与代码。 1、发邮件: 主要分为以下四个步骤: a、创建收发邮件session(创建时可以使用java.util.properties类进行各类参数的写入,并使用Authencat转载 2016-01-27 17:37:26 · 1158 阅读 · 0 评论 -
Java程序员常犯的10项错误
摘要:在Java中,有些事物如果不了解的话,很容易就会用错,如数组转换为数组列表、元素删除、Hashtable和HashMap、ArrayList和LinkedList、Super和Sub构造函数等,如果这些对你来说是陌生的,你可以在本文中了解它们。本文总结了Java开发者经常会犯的前十种错误列表。Top1. 数组转换为数组列表将数组转换为数组列表,开发者经常会这样做:转载 2016-01-27 10:46:46 · 379 阅读 · 0 评论 -
java集合架构详解
结合框架体系应该最重要的是如何灵活利用三种接口,set,map,list,他们如何遍历,各有什么特征,怎么样去处理,这是关键,在这个基础上再去掌握在什么场合用什么类型的接口。比如说list和set,set是无序的一个空袋子,当我们只需要放入取出,这个接口当然是最实用的,但是如果我们需要按序取出,这个方法就不能用了,而要用到list,map接口就有个特点,它有一个特定的key值,而一个key值又对应转载 2016-01-26 17:01:26 · 1706 阅读 · 0 评论 -
JVM内存配置详解
前段时间在一个项目的性能测试中又发生了一次OOM(Out of swap sapce),情形和以前网店版的那次差不多,比上次更奇怪的是,此次搞了几天之后啥都没调整系统就自动好了,死活没法再重现之前的OOM了!问题虽然蹊跷,但也趁此机会再次对JVM堆模型、GC垃圾算法等进行了一次系统梳理; 基本概念 堆/Heap JVM管理的内存叫堆;在32Bit操作系统上有4G的限制,一般来说Wi转载 2016-01-26 17:00:32 · 535 阅读 · 0 评论 -
Java中反射机制(Reflection)学习
Java语言的反射机制初步学习首先看下基本概念: (一)在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。 Java 反射机制主要提供了以下功能: ①:在转载 2016-01-26 16:59:11 · 517 阅读 · 0 评论 -
Java堆和栈的区别
Java堆和栈的区别 栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和 multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期转载 2016-01-26 16:58:35 · 214 阅读 · 0 评论 -
Java堆内存的10个要点
摘要:对大多数程序员都经历过这样的过程,因为学习一种语言是非常容易来的,但是学习基础是非常难的,因为没有什么特定的流程让你学习编程的每个基础,使你发觉编程的秘诀。导读:对于程序员来说,知道堆空间,设置堆空间,处理堆空间的outOfMemoryError错误,分析heap dump是非常重要的。文中介绍了Java堆的学习教程以及Java堆内存(heap memory)的十个要点。转载 2016-01-26 16:53:09 · 221 阅读 · 0 评论 -
一个优秀的Java程序员必须了解GC的工作原理
一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,因为有一些应用程序对性能要求较高, 例如嵌入式系统、实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能。本篇文章首先简单介绍GC的工作原理之后, 然后再对GC的几个关键问题进行深入探讨,最后提出一些Java程序设计建议,从GC角度提高Java程序的性能。 GC转载 2016-01-26 16:49:39 · 2133 阅读 · 0 评论 -
Java 8 特性 – 终极手册
1.简介毫无疑问,Java 8是自Java 5(2004年)发布以来Java语言最大的一次版本升级,Java 8带来了很多的新特性,比如编译器、类库、开发工具和JVM(Java虚拟机)。在这篇教程中我们将会学习这些新特性,并通过真实例子演示说明它们适用的场景。本教程由下面几部分组成,它们分别涉及到Java平台某一特定方面的内容:语言编译器类库开发工具运行时(Java虚拟机)转载 2016-01-26 17:09:18 · 545 阅读 · 0 评论 -
Java的Exception和Error面试题10问10答
在Java核心知识的面试中,你总能碰到关于 处理Exception和Error的面试题。Exception处理是Java应用开发中一个非常重要的方面,也是编写强健而稳定的Java程序的关键,这自然使它成为面试题中的常客。关于Java中Error和Exception的面试题目多是关于Exception和Error的概念,如何处理Exception,以及 处理Exception时需要遵守的最佳实践等等转载 2016-01-26 16:46:37 · 234 阅读 · 0 评论 -
多核平台下的JAVA优化
多核平台下的JAVA优化1213 现在多核 CPU 是主流。利用多核技术,可以有效发挥硬件的能力,提升吞吐量,对于 Java 程序,可以实现并发垃圾收集。但是 Java 利用多核技术也带来了一些问题,主要是多线程共享内存引起了。目前内存和 CPU 之间的带宽是一个主要瓶颈,每个核可以独享一部分高速缓存,可以提高性转载 2016-01-26 16:44:09 · 337 阅读 · 0 评论 -
java集合框架中的数据结构
java写程序时使用集合是再正常不过的了,经常用,做个简单的总结:1、ListVector: 早在1.0版本就出现了,底层数据结构是可变长度数组,百分之百延长,是同步的;ArrayList: 1.2版本出现.底层数据结构是也可变长度数组,百分之五十延长,是不同步的;LinkedList: 底层数据结构是链表结构,不同步;2、SetHashSet:数据结构是哈希表(底层数据结转载 2016-01-22 15:06:11 · 657 阅读 · 0 评论 -
IO // NIO 实现方式比较
69、Java 中有几种类型的流?答:字节流,字符流。字节流继承于InputStream、OutputStream,字符流继承于Reader、Writer。在java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。补充:关于Java的IO需要注意的有两点:一是两种对称性(输入和输出的对称性,字节和字符的对称性);二是两种设计模式(适配器模式和装潢模式)。另外Java中的转载 2016-01-06 08:26:28 · 461 阅读 · 0 评论 -
一个比较简单的 newFixedThreadPool多线程实现
61、编写多线程程序有几种实现方式?答:Java 5以前实现多线程有两种实现方法:一种是继承Thread类;另一种是实现Runnable接口。两种方式都要通过重写run()方法来定义线程的行为,推荐使用后者,因为Java中的继承是单继承,一个类有一个父类,如果继承了Thread类就无法再继承其他类了,显然使用Runnable接口更为灵活。补充:Java 5以后创建线程还有第三种方式转载 2016-01-06 08:17:51 · 2097 阅读 · 0 评论 -
Java中的各种加密算法
JAVA中为我们提供了丰富的加密技术,可以基本的分为单向加密和非对称加密 1.单向加密算法 单向加密算法主要用来验证数据传输的过程中,是否被篡改过。BASE64 严格地说,属于编码格式,而非加密算法MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm,安全散列算转载 2016-01-04 17:11:47 · 3098 阅读 · 0 评论 -
在linux下用tomcat部署java web项目的过程与注意事项(原创)
在linux下用tomcat部署java web项目的过程与注意事项(原创)一.安装JDK到http://www.oracle.com/technetwork/java/javase/downloads/index.html下载Java SE 6 Update 27根据操作系统选择Linux x64 - RPM Installer或Linux x86 - RPM Installer转载 2016-01-04 16:26:17 · 320 阅读 · 0 评论 -
ExecutorService.invokeAny()和ExecutorService.invokeAll()的使用剖析
ExecutorService.invokeAny()和ExecutorService.invokeAll()的使用剖析时间 2014-07-27 16:15:07 CSDN博客原文 http://blog.csdn.net/aitangyong/article/details/38172189主题 JavaExecutorService是JDK并发工具包提供的转载 2015-12-28 23:13:55 · 446 阅读 · 0 评论 -
Java系列笔记(4) - JVM监控与调优 和相关博客
http://www.cnblogs.com/zhguang/p/Java-JVM-GC.html转载 2015-12-27 22:06:35 · 399 阅读 · 0 评论 -
文件读取的方式 流的几种方式
待实现转载 2015-12-27 19:25:08 · 7422 阅读 · 0 评论 -
ArrayBlockingQueue和LinkedBlockingQueue的区别
ArrayBlockingQueue和LinkedBlockingQueue的区别博客分类: JDK探索 分析测试ArrayBlockingQueue和LinkedBlockingQueue的区别,得出结论如下:1. 队列中锁的实现不同 ArrayBlockingQueue实现的队列中的锁是没有分离的,即生产和消费用的是同一个锁转载 2015-12-25 13:48:01 · 304 阅读 · 0 评论 -
Java四种线程池的使用
Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。转载 2015-12-23 16:01:22 · 315 阅读 · 0 评论 -
掌握 Java 8 Lambda 表达式
Lambda 表达式 是 Java8 中最重要的功能之一。使用 Lambda 表达式 可以替代只有一个函数的接口实现,告别匿名内部类,代码看起来更简洁易懂。Lambda 表达式 同时还提升了对 集合 框架的迭代、遍历、过滤数据的操作。匿名内部类在 Java 世界中,匿名内部类 可以实现在应用程序中可能只执行一次的操作。例如,在 Android 应用程序中,一个按钮的点击事件处理转载 2016-03-17 10:48:12 · 626 阅读 · 0 评论 -
JVM内存配置详解
前段时间在一个项目的性能测试中又发生了一次OOM(Out of swap sapce),情形和以前网店版的那次差不多,比上次更奇怪的是,此次搞了几天之后啥都没调整系统就自动好了,死活没法再重现之前的OOM了!问题虽然蹊跷,但也趁此机会再次对JVM堆模型、GC垃圾算法等进行了一次系统梳理; 基本概念 堆/Heap JVM管理的内存叫堆;在32Bit操作系统上有4G的限制,一般来说Wi转载 2016-03-11 11:00:39 · 370 阅读 · 0 评论 -
Java RMI之HelloWorld篇
Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。 Java RMI不是什么新技术(在Java1.1的时代都有了),但却是是非常重要的底层技术。大名鼎鼎的EJB都是建立在rmi基础之上的,现转载 2016-03-11 12:17:53 · 261 阅读 · 0 评论 -
一个简答的生产者-消费者多线程模型
1生产者消费者模型?1同一段代码,分别设置produce和consumer的频率(通过sleep的长短控制)。?1第一种情况produce后,sleep(500),consumer后,sleep(100)转载 2016-03-13 13:32:22 · 436 阅读 · 0 评论 -
java文件读写操作大全
一.获得控制台用户输入的信息 public String getInputMessage() throws IOException...{ System.out.println("请输入您的命令∶"); byte buffer[]=new byte[1024]; int count=System.in.read(buffe转载 2016-03-14 13:27:02 · 213 阅读 · 0 评论 -
Java设计模式—生产者消费者模式(阻塞队列实现)
生产者消费者模式是并发、多线程编程中经典的设计模式,生产者和消费者通过分离的执行工作解耦,简化了开发模式,生产者和消费者可以以不同的速度生产和消费数据。这篇文章我们来看看什么是生产者消费者模式,这个问题也是多线程面试题中经常被提及的。如何使用阻塞队列(Blocking Queue)解决生产者消费者模式,以及使用生产者消费者模式的好处。真实世界中的生产者消费者模式生产者和消费者模转载 2016-03-15 12:24:35 · 329 阅读 · 0 评论 -
java反射详解
http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html转载 2016-05-17 21:03:48 · 256 阅读 · 0 评论 -
路漫漫其修远兮,吾将上下而求索——小酌重构系列
http://www.cnblogs.com/keepfool/p/5423729.html转载 2016-04-23 10:08:44 · 339 阅读 · 0 评论 -
Java 注解全面解析
http://www.iteye.com/topic/1143582转载 2016-04-23 16:46:30 · 258 阅读 · 0 评论