corejava
半个伪球迷
no pain no gain
展开
-
java复用类
复用代码是java众多引人注目的功能之一,但想要成为极具革命性的语言,仅仅能够复制代码并对之加以改变是不够的,他还必须能够做更多的事情。 复用类在thinking in java中讲解了两种方法,一个是组合,另外一个便是继承. 组合:这种比较直观;只需在新的类中创建现有类的对象,调用该对象的方法。这种方式只是复用了现有程序代码的功能,并非它的形式。 example:cla原创 2013-03-06 17:44:14 · 673 阅读 · 0 评论 -
【Java程序性能优化 第一版】第一章
1.1 性能概述 1.1.1看懂程序的性能 对客户端程序而言, 拙劣的性能会严重影响用户体验。 界面停顿, 抖动, 响应延迟等问题会遭到用户的抱怨。 一个典型的例子就是Eclipse IDE工具的Full GC时会出现程序假死现象,相信一定被不少开发人员所诟病。对于服务器程序来说, 性能问题则更为重要, 相信不少后台服务器软件都有各自的性能目标。以Web服务器为例,服务器的响应时间...原创 2018-09-04 16:45:51 · 139 阅读 · 0 评论 -
【Java程序性能优化 第一版】第二章
第2章 设计优化 本章主要介绍与软件设计相关的性能优化和思想。软件的结构对系统整体性能有这重要的影响。优秀的设计结构可以规避很多潜在的性能问题,对系统性能的影响可能远远大于代码的优化。因此,熟悉一些常用的软件设计模式和方法,对设计高性能软件有着重要的帮助。本章着眼于设计优化,主要讲解了一些常...原创 2018-09-06 17:43:07 · 191 阅读 · 0 评论 -
【Java程序性能优化 第一版】第四章(不变模式, 生产者-消费者模式)
4.1.4 不变模式 不变模式天生就是多线程友好的,它的核心思想是,一个对象一旦被创建,则它的内部状态将永远不会发生改变。所以,没有一个线程可以修改其内部状态和数据,同时其内部状态也绝不会自行发生改变。基于这个特性,对不变对象的多线程操作将不需要进行同步控制。 △ 注意:不变模式和只读属性是有一定区别的。不变模式比只读属性具有更强的一致性和不变性。对只读属性的对象而言,对象本身不能...原创 2018-09-13 14:51:58 · 169 阅读 · 0 评论 -
【Java程序性能优化 第一版】第四章(并发控制方法)
4.4 并发控制方法 并行程序开发将不可避免地要涉及多线程,多任务间的协作和数据共享等问题。在JDK中,提供了多种途径实现多线程间的并发控制。常用的方法有:内部锁,重入锁,读写锁,信号量等。 4.4.1 Java内存模型与volatie 在Java中,每一个线程有一块工作内存区,其中存放着被...原创 2018-09-20 21:42:42 · 182 阅读 · 0 评论 -
【Java程序性能优化 第一版】第四章(JDK多任务执行框架)
4.2 JDK多任务执行框架 为了给并行程序开发提供更好的支持,Java不仅提供了Thread类,Runnable接口等简单的多线程支持工具,为了改善并发程序的性能,在JDK中还提供了用于多线程管理的线程池。本节将主要讨论线程池及其在Java中的实现与使用。 4.2.1无限制线程的缺陷 多线程的软件设计方法确实可...原创 2018-09-14 10:36:23 · 162 阅读 · 0 评论 -
【Java程序性能优化 第一版】第四章(JDK并发数据结构)
4.3 JDK并发数据结构 由于并行程序与串行程序的不同特点,适用于串行程序的一些数据结构可能无法直接在并发环境下工作,这是因为这些数据结构不是线程安全的。 4.3.1 并发List Vector或者CopyOnWriteArrayList是两个线程安全的List实现,ArrayList不是线程安全的,...原创 2018-09-17 16:05:04 · 163 阅读 · 0 评论 -
【Java多线程编程核心技术】第一章(多线程技能 currentThread, isAlive,sleep,getId)
Thread类的核心方法较多,读者应该着重掌握如下关键技术点:□线程的启动□如果使线程暂停□如何使线程停止□线程的优先级□线程安全相关的问题1.1 进程与多线程的概念及线程的优点 本节主要介绍在Java语言中使用多线程技术。但是讲到多线程不得不提到进程这个概念:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度...原创 2018-09-20 22:52:20 · 151 阅读 · 0 评论 -
【Java多线程编程核心技术】第一章(多线程技能 线程的优先级)
1.8 线程的优先级 在操作系统中,线程可以划分优先级,优先级较高的线程得到的cpu的资源较多,也就是cpu优先执行优先级较高的线程对象中的任务. 在Java中,线程优先级分为1~10个等级,如果小于1大于10,则JDK抛出异常,源码如下: public final void setPriority(int newPriority) { ThreadGroup g...原创 2018-10-08 17:04:26 · 249 阅读 · 2 评论 -
【codejava】第八版:第五章 继承[001] [20180108]
5.1 类,超类和子类5.1.3 动态绑定 弄清调用对象方法的执行过程十分重要。下面是调用过程的详细描述: 1)编译器查看对象的声明类型和方法名。假设调用x.f(param),且隐式参数x声明为C类的对象。需要注意的是:有可能存在多个名字为f,但参数类型不一样的方法。例如,可能存在方法f(int)和方法f(String)。编译器将会一一列举所有C类中名为f的方法和其超类原创 2018-01-08 18:50:15 · 179 阅读 · 0 评论 -
eclipse 运行spring源码
1首先下载gradle 去官网 去git下载spring的最新源代码2配置gradle的环境变量GRADLE_HOME=d:/software/gradle3.0在path后面加上 ;%GRADLE_HOME%\bin3找到spring源码的根目录运行 gradle eclipse -x :eclipse ,build success后便可以导入eclipse了原创 2016-08-28 13:57:20 · 543 阅读 · 0 评论 -
【codejava】第八版:第三章 Java基本的程序设计结构[20180103]
3.3 数据类型java 是强类型语言 所以就意味着必须为每一个变量声明一种类型3.3.1整型 java中 整型的范围与运行JAVA代码的机器无关 C和C++需要针对不同的位处理器选择最为有效的整型 否则就有可能造成一个在32位处理器上运行很好的C程序在16位处理器上出现整数溢出 长整型有后缀L 十六进制数值有一个前缀0X 8进制数值有个前缀0 所以八进制比较容原创 2018-01-03 20:43:11 · 182 阅读 · 0 评论 -
【codejava】第八版:第十三章 集合[001] [20180104]
△集合接口 △算法 △具体的集合* △遗留的集合 △集合框架 13.1 集合接口 java最初版本只为最常用的数据结构提供了很少的一组类,Vector,stack,hashtable,Bitset,Enumeration,其中的Enu原创 2018-01-04 10:11:26 · 166 阅读 · 0 评论 -
【codejava】第八版:第十三章 集合[002] [20180104]
表13-1 Java库中的具体集合—————————————————————————————————————————————————— 集合类型 描述———原创 2018-01-04 11:15:29 · 221 阅读 · 0 评论 -
【codejava】第八版:第十四章 多线程[001] [20180105]
14.1 线程的概念 读者可能已经很熟悉操作系统中的多任务(multitasking):在同一刻运行多个程序的能力。例如,在编辑或下载邮件的同时可以打印文件。今天,人们很可能有单台拥有多个CPU的计算机,但是,并发执行的进程数并不是有CPU数目制约的。操作系统将CPU的时间片分配给每一个进程,给人并行处理的感觉。 多线程程序在较低的层次上扩展了多任务的概念:一个程序同时执行原创 2018-01-05 22:04:51 · 176 阅读 · 0 评论 -
【codejava】第八版:第十二章 泛型程序设计[001] [20180106]
12.1 为什么要使用泛型程序设计generic programming意味着编写的代码可以被很多不同类型的对象所重用,例如,我们并不希望为聚集String和File而编写不同的类,实际上也不需要这样做,因为一个ArrayList可以聚集任何类型的对象,这是一个泛型程序设计的实例 java SE 5.0之前 java泛型程序设计是用继承实现的 ArrayList只维护一个Ob原创 2018-01-06 14:25:05 · 265 阅读 · 0 评论 -
PROXY(代理)—对象结构型模式
代理模式【proxy】什么是代理模式为其他对象提供一种代理以控制对这个对象的访问。能够协调调用者和被调用者,在一定程度上降低了系统的耦合度。什么场景会用到代理模式在某些情况下,一个对象不合适或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。...原创 2019-09-17 09:50:32 · 273 阅读 · 1 评论