Java学习路程
huohu1007
无限,努力,奔跑
展开
-
Java学习笔记(67)-----------Timer和TimerTask
Timer和TimerTaskTimerTask实现了Runnable接口,待执行的任务置于run()中。Timer是一个安排TimerTask的类,两者一般一起工作。应用时首先硬创建一个TimerTask的对象,然后用一个Timer的类对象安排执行它其实就Timer来讲就是一个调度器,而TimerTask只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实原创 2016-01-18 11:08:03 · 290 阅读 · 0 评论 -
Java学习笔记(77)-----------注释注意事项
目录(?)[+]代码注释,可以说是比代码本身更重要。这里有一些方法可以确保你写在代码中的注释是友好的:不要重复阅读者已经知道的内容能明确说明代码是做什么的注释对我们是没有帮助的。// If the color is red, turn it greenif (color.is_red()) { color.turn_green();}要注释说明推理和原创 2016-01-18 11:28:29 · 306 阅读 · 0 评论 -
Java学习笔记(75)-----------NIO.2第一篇
目录(?)[+]Java 7引入了NIO.2,NIO.2是继承自NIO框架,并增加了新的功能(例如:处理软链接和硬链接的功能)。这篇帖子包括三个部分,我将使用NIO.2的一些示例,由此向大家演示NIO.2的基本使用方法。文件拷贝Q:怎样拷贝一个文件?A:你可以使用java.nio.file.Files类的public static Path copy(Pat原创 2016-01-18 11:27:15 · 745 阅读 · 0 评论 -
Java学习笔记(74)------------线程池
目录(?)[+]Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,原创 2016-01-18 11:26:02 · 263 阅读 · 0 评论 -
Java学习笔记(73)-----------ThreadLocal
目录(?)[+]Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲:原创 2016-01-18 11:25:05 · 262 阅读 · 0 评论 -
Java学习笔记(72)-----------大话程序员面试
目录(?)[+]大话程序员面试10个我最喜欢问程序员的面试问题程序员面试不完全指南10个经典的C语言面试基础算法及代码程序员的10大成功面试技巧程序员选择公司的8个标准编程开发8个值得关注的PHP安全函数简析TCP的三次握手与四次分手10分钟掌握XML、JSON及其解析高效的jQuery代码编写技巧总结编译器的工作过程和原理CPU空闲时在”忙”什么5个强大的Ja原创 2016-01-18 11:24:08 · 322 阅读 · 0 评论 -
Java学习笔记(71)----------volatile
目录(?)[+]Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由原创 2016-01-18 11:16:36 · 527 阅读 · 2 评论 -
Java学习笔记(70)-----------挚爱Java
目录(?)[+]与大家分享!挚爱Java10个使用Java最广泛的现实领域写好Java代码的30条经验总结Java字符串的substring真的会引起内存泄露么?Java内存的原型及工作原理深度剖析Java 8中HashMap的性能提升Java内存的原型及工作原理深度剖析请不要说自己是Java程序员Java程序员必须掌握的8大排序算法推荐!国外程序员整理的Jav原创 2016-01-18 11:15:32 · 279 阅读 · 0 评论 -
Java学习笔记(69)---------Lock
目录(?)[+]Java并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什原创 2016-01-18 11:13:54 · 270 阅读 · 0 评论 -
Java学习笔记(79)---------- ConcurrentModificationException异常
目录(?)[+]Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。 以下是本文目录原创 2016-01-18 11:29:33 · 237 阅读 · 0 评论 -
Java学习笔记(80)-----------并发容器之ConcurrentHashMap
目录(?)[+]Java并发编程:并发容器之ConcurrentHashMap 下面这部分内容转载自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全原创 2016-01-18 11:30:42 · 298 阅读 · 0 评论 -
Java学习笔记(81)-----------并发容器之CopyOnWriteArrayList
目录(?)[+]Java并发编程:并发容器之CopyOnWriteArrayList Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnW原创 2016-01-18 11:32:10 · 283 阅读 · 0 评论 -
Java学习(86)-----------使用CompletableFuture处理异步超时
一天,我在改进多线程代码时被Future.get()卡住了。public void serve() throws InterruptedException, ExecutionException, TimeoutException { final Future responseFuture = asyncCode(); final Response response = respons原创 2016-01-18 12:05:33 · 3496 阅读 · 0 评论 -
Java学习笔记(89)-----------Java习惯用法总结
目录(?)[+]在Java编程中,有些知识 并不能仅通过语言规范或者标准API文档就能学到的。在本文中,我会尽量收集一些最常用的习惯用法,特别是很难猜到的用法。(Joshua Bloch的《Effective Java》对这个话题给出了更详尽的论述,可以从这本书里学习更多的用法。)我把本文的所有代码都放在公共场所里。你可以根据自己的喜好去复制和修改任意的代码片段,不原创 2016-01-18 12:08:19 · 321 阅读 · 0 评论 -
Java学习笔记(88)-----------值得拥有的10本书
目录(?)[+]Java是时下最流行的编程语言之一。市面上也出现了适合初学者的大量书籍。但是对于那些在Java编程上淫浸多时的开发人员而言,这些书的内容未免显得过于简单和冗余了。那些适合初学者的书籍看着真想打瞌睡,有木有。想找高级点的Java书籍吧,又不知道哪些适合自己。别急,雪中送炭的来了:下面我将分享的书单绝对值得拥有。ps,我也尽力避免列出为特定软件或框架或认证的原创 2016-01-18 12:07:30 · 471 阅读 · 0 评论 -
Java学习笔记(87)-----------十篇必读的Java文章
目录(?)[+]1、Brian Goetz:“管理工作:发人深省的部分”这其实不是一篇博文,而是Brian Goetz对于甲骨文公司Java的管理的一个非常有趣的讨论的记录。在 以前我们将Java语言与Scala或者Ceylon相比较的时候,对其1-2个特性一直稍微有些意见。对于为什么Java尽快变得和其他语言一样“时髦”不是一个好主意,Brian提出了很好的观点。原创 2016-01-18 12:06:16 · 500 阅读 · 0 评论 -
Java学习笔记(85)-----------用医生的思考方式调试你的代码
目录(?)[+]“现在的编程工作就像是对你需要解决处理的部分做科学研究。”——Gerald Sussman设计和维护好的软件就像是一个抵制复杂度的永无止境的奋斗过程。任何足够大小的应用程序的代码路径和组件都能迅速成长成令人眼花缭乱的组合爆炸。一点都不简单。当部署类似于Heroku和AWS的平台时,单服务器的Web应用程序成为了分布式系统。现代浏览原创 2016-01-18 11:39:31 · 349 阅读 · 0 评论 -
Java学习笔记(84)----------关于 Java 对象序列化你不知道的 5 件事
目录(?)[+]关于本系列您觉得自己懂 Java 编程?事实上,大多数程序员对于 Java 平台都是浅尝则止,只学习了足以完成手头上任务的知识而已。在本 系列 中,Ted Neward 深入挖掘 Java 平台的核心功能,揭示一些鲜为人知的事实,帮助您解决最棘手的编程挑战。大约一年前,一个负责管理应用程序所有用户设置的开发人员,决定将用户设置存储在一个 Hash原创 2016-01-18 11:38:32 · 301 阅读 · 0 评论 -
Java学习笔记(83)----------继承详解
目录(?)[+]什么是继承?多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。多个类可以称为子类,单独这个类称为父类、超类或者基类。子类可以直接访问父类中的非私有的属性和行为。通过 extends 关键字让类与类之间产生继承关系。class SubDemo extends Demo原创 2016-01-18 11:34:40 · 288 阅读 · 0 评论 -
Java学习笔记(82)-----------阻塞队列
目录(?)[+]Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞队列,比如Priority原创 2016-01-18 11:33:24 · 289 阅读 · 0 评论 -
Java学习笔记(68)-----------synchronized
目录(?)[+]Java并发编程:synchronized Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个原创 2016-01-18 11:11:34 · 334 阅读 · 0 评论 -
Java学习笔记(65)---------线程协作
目录(?)[+]线程间协作的两种方式:wait、notify、notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权原创 2016-01-18 11:05:35 · 269 阅读 · 0 评论 -
Java之学习笔记(21)-------------final && static
目录(?)[+]static 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是: 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便)原创 2016-01-18 09:19:02 · 292 阅读 · 0 评论 -
Java之学习笔记(19)-----------包装类和匿名类
目录(?)[+]包装类(Wrapper Class) 包装类是针对于原生数据类型的包装。 因为有8个原生数据类型,所以对应有8个包装类。 所有的包装类(8个)都位于java.lang下。 Java中的8个包装类分别是:Byte, Short, Integer, Long, Float, Double, Character, Boolean,它原创 2016-01-18 09:16:52 · 467 阅读 · 0 评论 -
Java之学习笔记(18)-------------继承
目录(?)[+]Java:类与继承 Java 的基本概念 Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用原创 2016-01-18 09:15:45 · 320 阅读 · 0 评论 -
Java之学习笔记(15)-------------内部类
目录(?)[-] 静态内部类Static Inner Class成员内部类Member Inner Class局部内部类Local Inner Class匿名内部类Anonymous Inner Class一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分。 Java中的内部类共分为四种: 静态内部类static inn原创 2016-01-18 09:09:50 · 356 阅读 · 0 评论 -
Java之学习笔记(14)-----------类、对象
目录(?)[-]Java编程中类和对象的定义 1PO持久对象Persistent Object它们是由一组属性和属性的get和set方法组成 2VOvalue object值对象通常用于业务层之间的数据传递和PO一样也是仅仅包含数据而已 3DAOJ2EE 开发人员使用数据访问对象Data Access Object DAO设计模式以便将低级原创 2016-01-18 09:08:26 · 329 阅读 · 0 评论 -
java之学习笔记(13)-------------数组学习以及循环机制中for each讲解
目录(?)[+]数组详细解析!数组中可分为以下几种:一维数组、二维数组、以及多维数组。定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int[10]; 数组名,也即引用a,指向数组元素的首地址。 方式2(同C语原创 2016-01-18 09:06:23 · 542 阅读 · 0 评论 -
JAVA之学习笔记(6)------------标识符和关键字
目录(?)[+]JAVA是一门强类型语言1.所有的变量必须先声明在使用。2.指定类型的变量只接受类型匹配的值。 知识虽简单,但是需要牢记于心,才不会在使用上出现错误! 虽然关键字和标识符没有多大关系,但是鉴于这两个词经常一起出现,就放在一起来梳理一下吧。关键字定义: 被Java语言赋原创 2016-01-18 08:55:58 · 383 阅读 · 0 评论 -
JAVA之学习笔记(5)----------注释
目录(?)[+] 注释:程序的注释非常有用,大多数人在开始学习JAVA时候,非常努力的写程序,但大意了添加注释,可能他懒得原因,可能没有这种习惯。但是,添加注释具有很强大的作用。虽然注解不参加实际的编译过程,但是仍然被认为是程序中重要的部分。希望大家养成编码的好习惯,对后期的应用非常关键! 那么下面原创 2016-01-18 08:54:54 · 662 阅读 · 0 评论 -
Java之学习笔记(25)-------------修饰符
目录(?)[+]修饰符的适用范围直接上图,直接明了 java中的修饰符分为类修饰符,字段修饰符,方法修饰符。根据功能的不同,主要分为以下几种。 1、权限访问修饰符 public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。原创 2016-01-18 09:22:50 · 259 阅读 · 0 评论 -
Java之学习笔记(29)-----------static
目录(?)[+]Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的目录大纲: 一.static关键字的用途原创 2016-01-18 09:27:54 · 263 阅读 · 0 评论 -
Java学习笔记(32)-----------与运行环境交互
目录(?)[+]本人认为java的与运行交互部分,最多的应该是多打一点代码,敲玩代码,运行结果,查看效果!才会真正的体会到各个类调用各个方法的实际作用!以下是有关于运行环境交互的情况!下载代码:http://download.csdn.net/detail/u011225629/8709021 一.与用户互动 1.main方法形参 2.使用S原创 2016-01-18 09:39:10 · 231 阅读 · 0 评论 -
Java学习笔记(62)------------线程初识
目录(?)[+]线程初识没有线程编程的程序好比一个人一只手干活,而多线程的程序就好比一个人多只手干活.进程是系统资源分配的独立单位,而线程是可调度运行的独立单位,一个进程可以拥有多个线程,线程是进程并行完成的多个任务. 进程、线程、并发执行首先我们先来认识一下进程、线程、并发执行的概念: 一般来说,当运行一个应用程序的时候,就启动了一个原创 2016-01-18 11:01:01 · 323 阅读 · 0 评论 -
Java学习笔记(59)-----------50道Java线程面试题
目录(?)[+]50道Java线程面试题 下面是Java线程相关的热门面试题,你可以用它来好好准备面试。1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫原创 2016-01-18 10:55:21 · 313 阅读 · 0 评论 -
Java学习笔记(58)-----------NIO概述
目录(?)[+]Java NIO:NIO概述 在上一篇博文中讲述了几种IO模型,现在我们开始进入Java NIO编程主题。NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题。本文下面分别从Java NIO的几个基础概念介绍起。 以下是本文的目录大纲: 一.NIO中的几个基础概念 二.Channel 三.Buf原创 2016-01-18 10:54:17 · 284 阅读 · 0 评论 -
Java学习笔记(49)------------异常处理机制
目录(?)[+] Java的异常处理机制 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引原创 2016-01-18 10:43:03 · 463 阅读 · 0 评论 -
Java学习笔记(42)----------HashTable,HashMap和HashSet
目录(?)[+]本文目录:1. HashTable和HashMap的区别2. HashSet和HashMap的区别3. HashMap,HashSet工作原理4. HashSet工作原理5. 常见问题1. HashTable和HashMap的区别---------------------------------原创 2016-01-18 09:53:59 · 477 阅读 · 0 评论 -
Java学习笔记(40)----------TreeMap和TreeSet
目录(?)[+]看这篇博客前,我觉得很有必要先看下这几篇博客Red-Black Trees(红黑树) (TreeMap底层的实现就是用的红黑树数据结构)探索equals()和hashCode()方法 (TreeMap原创 2016-01-18 09:49:50 · 375 阅读 · 0 评论 -
Java学习笔记(34)----------Iterator、Collection接口以及foreach
目录(?)[+]Iterator、Collection接口: 如下图:Iterator、Collection同在一个包中:红字部分使我们经常遇到的,但是遇到又不知道怎么去理解,去应用它! Collection是最基本集合接口,它定义了一组允许重复的对象。Collection接口派生了两个子接口Set和List,分别定义了两种不同的存储方式,如下:原创 2016-01-18 09:42:56 · 395 阅读 · 0 评论