自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

原创 深入理解Java并发1——Java内存模型和volatile型变量

 一 概念(1)Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量(线程共享的)存储到内存和从内存中取出变量这样的底层细节。 (2)Java内存模型规定了所有的变量都存储在主内存 ,每条线程还有自己的工作内存 ,线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作(读取、 赋值等)都必须在工作内存中进行,而不能直接读写主内存中的变...

2017-03-07 21:21:37 512

原创 深入理解Java并发4——synchronized关键字

一 概述 由博客(http://blog.csdn.net/xiaowang627/article/details/60584428),我们已经体验到synchronized关键字的强大之处,该关键字是Java中解决并发问题最常用的方法,也是最简单的方法,该关键字有三种用法:(1)修饰普通方法。(2)修饰静态方法。(3)修饰代码块。二 修饰代码块 2.1 先看...

2017-03-07 13:36:35 1335

原创 Java源代码阅读——HashMap实现原理

一 概述public class HashMap  extends AbstractMap  implements Map, Cloneable, Serializable基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现不是同步的。如果多个线程同时访问一个哈希映射,而其中至少

2017-03-03 21:45:40 465

原创 算法导论——各种排序算法Java实现

一 插入排序1.1 算法实现: class InsertSort { public void sort(int[] arrToSort){ int curIndex,insertIndex; int curNum; if(arrToSort.length<=1) return; for(curIndex=1;curIndex<arrToSo...

2017-03-26 22:51:37 368

原创 TCP/IP协议族——底层技术

导言:虽然TCP/IP协议族通常被表示为一个五层协议栈,但实际上只定义了上三层,因为TCP/IP只关心网络层、运输层和应用层。物理层和数据链路层为底层技术。一 有线局域网1.1 以太网帧和MAC地址以太LAN网中发送的分组称为帧,说明如下:(1)帧格式:包含7个字段,以太网不提供任何机制来确认收到的帧,因此以太网是不可靠的媒体。(2)帧长度(首部和尾部算18个字

2017-03-26 15:31:13 2670

原创 TCP/IP协议族——OSI模型和TCP/IP协议族

导言:1990年以前,在数据通信和组网文献中占主导地位的分层模型是开放系统互连(Open Systems Interconnection,OSI)模型,现在TCP/IP协议族成为了占主导地位的商用体系结构。一 OSI七层模型1.1 物理层涉及到接口和传输媒体的机械和电气规约,负责把逐个的比特从一跳移动到下一跳,该层关心一下内容:(1)接口和媒体的物理特性:定义了设备

2017-03-25 22:51:22 1563

原创 ThinkingInJava——并发之Thread,Executor,Callable

一 Thread类将Runnable对象转换为工作任务的传统方式是把它提交给一个Thread构造器,调用Thread对象的start()方法为该线程执行必需的初始化操作,然后调用Runnable的run()方法,以便在这个新线程中启动任务。start()方法调用后会立即返回当前线程,而由其它线程去执行run()方法。练习1:实现一个Runnable。在run()内部打印一个消息,然

2017-03-25 13:29:53 508

原创 数据库系统实现——索引结构

一 概述索引的目的:按给定查找键值快速定位记录。二 顺序文件上的索引2.1 顺序文件2.1.1 概念记录按查找键排序(可二分查找)。2.1.2 密集索引概念:每个记录都有一个索引项,索引项按查找键排序。查找方法:查找索引项,跟踪指针即可

2017-03-14 14:09:25 802

原创 设计模式——责任链模式

一 场景想象一个求职过程:(1)求职者(Client)提交简历给机器进行第一次筛选,筛选成功后提交给主管。(2)主管进行一轮面试,对简历再次评级,拒绝评级差的,评级好的提交给经理。(3)经理进行二轮面试,对简历再次评级,拒绝评级差的,评级好的提交给总监。(4)总监进行三轮面试,对简历再次评级,拒绝评级差的,评级好的通过面试(hr面暂时免了)。二 代码

2017-03-12 16:05:46 420

原创 深入理解Javaweb——Web请求过程

一  HTTP请求的本质发起HTTP请求即建立Socket连接,只不过outputStream.write写的二进制字节数据格式要符合HTTP,浏览器在建立Socket连接之前,必须根据地址栏里输入的URL的域名DNS解析出IP地址,在根据这个IP地址和默认的80端口与服务器建立Socket连接,然后浏览器根据这个URL组装成一个get类型的HTTP请求头,通过output

2017-03-11 22:14:27 1851

原创 设计模式——工厂方法模式

一 为什么要工厂方法模式1.1 简单工厂模式代码经过上一篇博文对简单工厂的分析,已经体会到简单工厂所带来的遍历之处,依然考虑上一篇博文的例子:一个学生类,一个铅笔类,一个橡皮类,每名学生需要一支铅笔,一个橡皮:public abstract class Stationery { public Stationery(){ }}publi

2017-03-11 20:04:40 292

原创 设计模式——简单工厂模式

一 为何要工厂模式百度百科:替代new,避免代码中出现大量的new。but,为什么要替代new呢?new又简单又方便。。。。下面通过代码讲解,原始的代码包括三个类,一个学生类,一个铅笔类,一个橡皮类,学生需要3支铅笔和2块橡皮。1.1 用new的代码public class Eraser { public Eraser(){ System.ou

2017-03-11 17:40:53 349

原创 设计模式——单例模式

一 单例模式特点 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。基于以上特点,单例模式可用于:线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序等。二 简单的单例模式public class Singleton { private Singleton(){} //使构造器对

2017-03-09 00:06:34 317

原创 Java源代码阅读——字符串相关

一 String类 字符串存贮在一个final数组value中,并且未对外提供修改其内元素的方法,所以String类是不可变的。   private final char value[];   1.1 构造方法   public String() { this.value = "".value;}...

2017-03-08 13:02:12 280

原创 深入理解Java并发3——线程安全与锁优化

一 线程安全定义当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的 。——Brian Goetz ;二 Java中的线程安全按照线程安全的“安全程度”由强至弱来排序,我们可以将Java语言中各种操作共享的数据分

2017-03-08 00:09:21 608

原创 深入理解Java并发2——Java线程实现原理

一 线程的实现 1.1 概念  线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、 文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。1.2 线程的实现方式 1.2.1 使用内核线程实现 (Java)这种实现方式线程直接由操作系统内核支持。程序一般不会...

2017-03-07 22:29:18 3736

原创 深入理解Java并发4——通过代码理解并发

一 为什么需要多线程控制看代码:package mutithread;public class ThreadTest { private static int count=0; public static void addCount(){ for(int i=0;i<100;i++){ ++count; } } public static void m

2017-03-06 21:00:28 378

原创 深入理解Java虚拟机——类加载机制

一 概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、 转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、 连接和初始化过程都是在程序运行期间完成的 。二 类加载的时机  2.1 类的生命周期  图片来源于《...

2017-03-05 01:16:26 436

原创 Java源代码阅读——ArrayList实现原理

一  概述public class ArrayList&lt;E&gt; extends AbstractList&lt;E&gt; implements List&lt;E&gt;, RandomAccess, Cloneable, java.io.Serializable可见它实现List接口,其底层使用数组保存所有元素,其操作基本上是对数组的操作。此实现不是同步的。如果多个线程...

2017-03-03 16:58:33 483

原创 Java源代码阅读——Object类

一 概述类Object是类层次结构的根类。每个类都使用object作为超类。所有对象(包括数组)都实现这个类的方法。二 构造方法Object();三 方法3.1 clone

2017-03-03 16:16:53 466

红黑树插入算法C++实现

红黑树插入算法C++实现

2017-02-12

结构力学求解器2.6最新版

结构力学求解器,学生版,最新版,已注册正版

2013-06-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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