自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

牧_风的博客

开心快乐码代码!

原创 知识点总结(目录)

找工作知识点一、JAVA基本知识点 1、String、StringBuffer、StringBuilder的区别: http://blog.csdn.net/hbtj_1216/article/details/70305992 JAVA集合 java集合: http://www...

2017-07-15 14:52:55

阅读数 1412

评论数 0

转载 IP、TCP、UDP首部详解

一、IP 首部 1、第一个4字节(也就是第一行):(1)版本号(Version),4位;用于标识IP协议版本,IPv4是0100,IPv6是0110,也就是二进制的4和6。 (2)首部长度(Internet Header Length),4位;用于标识首部的长度,单位为4字节,所以首部长度最大值为...

2017-07-31 22:00:10

阅读数 630

评论数 0

原创 TCP/IP四层模型

下图所示是TCP/IP参考模型和OSI参考模型的对比示意图。 TCP/IP参考模型分为四个层次:应用层、传输层、网络互连层、主机到网络层。 1、主机到网络层  实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口,以便在其上传递IP分组。由于这一...

2017-07-31 21:28:27

阅读数 369

评论数 0

转载 Java NIO中的Buffer、Channel和Selector的概念和作用

转载: http://ginobefunny.com/post/java_nio_interview_questions/ http://www.jianshu.com/p/0520350372971、Buffer(缓冲区)使用数组的方式不够灵活且性能差,Java NIO的缓冲区功能更加强大;...

2017-07-31 20:40:57

阅读数 3313

评论数 1

原创 Java网络知识点总结

1、select、poll、epoll详解http://blog.csdn.net/hbtj_1216/article/details/70568402

2017-07-31 14:34:06

阅读数 1003

评论数 0

转载 Java内存模型

转载:http://www.cnblogs.com/leesf456/p/5291484.html Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model, JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效...

2017-07-31 10:11:07

阅读数 226

评论数 0

原创 内存屏障

内存屏障(Memory Barrier,或有时叫做内存栅栏,Memory Fence)是一种CPU指令,用于控制特定条件下的重排序和内存可见性问题。Java编译器也会根据内存屏障的规则禁止重排序。内存屏障可以被分为以下几种类型: LoadLoad屏障:对于这样的语句Load1; LoadLoad;...

2017-07-30 22:02:48

阅读数 428

评论数 0

转载 同步的三种方式:volatile、锁、final

转载:http://www.cnblogs.com/leesf456/p/5291484.html1、volatile1.1 介绍关键字volatile是Java虚拟机提供的最轻量级的同步机制。 当一个变量定义为volatile时,它将具备两种特性:(1)可见性;(2)禁止指令重排序。 ...

2017-07-30 21:57:42

阅读数 783

评论数 0

转载 常见的垃圾收集器

转载:http://ginobefunny.com/post/jvm_interview_questions/这里讨论JDK 1.7 Update 14之后的HotSpot虚拟机,包含的虚拟机如下图所示(存在连线的表示可以搭配使用): 1、Serial收集器(单线程) 最基本、发展历史最悠久,在...

2017-07-30 16:36:35

阅读数 344

评论数 0

原创 类加载器、双亲委派模型

类加载器用于加载类。对于任意一个类,都需要由加载它的 类加载器 和这个 类 一同确立其在Java虚拟机中的唯一性。每一个类加载器,都有一个独立的类名称空间。由不同的类加载器加载的类必定不相等。1、类加载器从虚拟机角度看,只存在两种类加载器:1. 启动类加载器。2. 其他类加载器。 从开发人员角度...

2017-07-30 15:26:06

阅读数 293

评论数 0

原创 JVM类加载机制

虚拟机把Class文件(描述类的数据)加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是类加载机制。Java中,类显性的加载、连接、初始化都是在 运行期 完成。Class文件是一串二进制的字节流。1、类加载总体流程图类的整个生命周期分为以上七个阶段:...

2017-07-30 11:31:53

阅读数 211

评论数 0

原创 JVM堆内存分配与回收策略

1、堆划分在JDK1.7以及之前的版本中,堆内存通常被分为三块区域:新生代、老年代、永久代。 新生代又分为:Eden区、From Survivor区(S0)、To Survivor区(S1)。默认8:1:1。 而在JDK1.8中情况发生了变化,把存放元数据中的永久内存从堆内存中移到了本地内存(...

2017-07-29 16:39:55

阅读数 359

评论数 0

原创 JVM运行时内存划分

在Java运行时的数据区里,由JVM管理的内存区域分为下图几个模块: 其中, 程序计数器、虚拟机栈、本地方法栈 是线程私有的,每个线程都有一份。 堆、方法区 是线程共享的。1、程序计数器(Program Counter Register)线程私有。程序计数器是一个较小的内存空间,用于指示当前...

2017-07-29 15:10:28

阅读数 300

评论数 0

原创 JVM知识点总结

1、JVM运行时内存划分

2017-07-29 10:51:22

阅读数 532

评论数 0

转载 sleep(),wait(),yield(),join()方法的区别

转载:http://blog.csdn.net/xiangwanpeng/article/details/54972952sleep()  sleep()方法需要指定等待的时间,它可以让当前正在执行的线程在指定的时间内暂停执行,进入阻塞状态,该方法既可以让其他同优先级或者高优先级的线程得到执行的机...

2017-07-28 20:56:11

阅读数 507

评论数 0

转载 java程序中,如何安全的结束一个正在运行的线程?

转载:http://blog.163.com/xh_ding/blog/static/193903289201341685931689在Java的多线程编程中,java.lang.Thread 类型包含了一些列的方法start(), stop(), stop(Throwable) and susp...

2017-07-28 16:00:17

阅读数 451

评论数 0

原创 Java实现多线程的三种方式

1、Java实现多线程主要有三种方式: (1)继承Thread类 (2)实现Runnable接口 (3)使用ExecutorService、Callable、Future实现有返回结果的多线程。 其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。2、方式一:继承Thread类Thr...

2017-07-28 15:17:31

阅读数 377

评论数 0

转载 未分类

20.Error、Exception区别Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,...

2017-07-28 14:35:38

阅读数 116

评论数 0

原创 JAVA多线程、并发知识点总结

1、java多线程(一个优秀的博客)http://www.cnblogs.com/skywang12345/p/java_threads_category.html2、线程状态图http://www.cnblogs.com/skywang12345/p/3479024.html3、Callable...

2017-07-28 14:19:41

阅读数 1181

评论数 1

转载 ConcurrentHashMap源码解析——JDK1.7

参考:http://www.cnblogs.com/skywang12345/p/3498537.html1、ConcurrentHashMap介绍ConcurrentHashMap是线程安全的哈希表。HashMap, Hashtable, ConcurrentHashMap之间的关联如下: Ha...

2017-07-27 20:42:30

阅读数 478

评论数 1

转载 CopyOnWriteArrayList源码解析——JDK1.8

参考:http://www.cnblogs.com/skywang12345/p/3498483.html1、CopyOnWriteArrayList介绍它相当于线程安全的*ArrayList。和ArrayList一样,它是个可变数组*;但是和ArrayList不同的时,它具有以下特性: 1. ...

2017-07-27 14:34:08

阅读数 726

评论数 0

原创 LinkedList源码解析——JDK1.8

1、LinkedList介绍LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList 实现 List 接口,能对它进行队列操作。LinkedList 实现 Deque 接口,即能将LinkedList...

2017-07-27 13:15:22

阅读数 247

评论数 0

转载 ArrayList源码解析——JDK1.8

转载:http://www.cnblogs.com/skywang12345/p/3308556.html1、ArrayList介绍ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAc...

2017-07-27 10:06:29

阅读数 287

评论数 0

原创 HashMap和Hashtable的区别

HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的区别。 主要的区别有:线程安全性,同步(synchronization),速度。 HashMap可以接受null(键值(key)和值(value)都可以为null),而Hashtable则不行,会抛出...

2017-07-27 09:13:31

阅读数 237

评论数 0

转载 Hashtable源码解析

1、简介和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。 Hashtable 的函数都是同步的,这意味着它是线...

2017-07-26 21:40:01

阅读数 226

评论数 0

转载 HashMap源码分析——JDK1.8

HashMap源码分析——JDK1.8转载:http://blog.csdn.net/u010498696/article/details/45888613 在JDK1.6中,HashMap采用位桶+链表实现:即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素...

2017-07-24 16:03:14

阅读数 447

评论数 0

原创 Java集合知识点总结

1、集合博客http://www.cnblogs.com/skywang12345/p/3323085.html2、

2017-07-21 16:41:19

阅读数 737

评论数 0

原创 Java基础知识点

Java基础知识点 1.面向对象和面向过程的区别 面向过程: - 优点:性能比面向对象高,因为面向对象中类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 - 缺点:不易维护、不易复用、不易扩展。 面...

2017-07-21 16:33:12

阅读数 612

评论数 0

原创 Java中抽象类和接口的区别

区别: 接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。 接口中的方法定义默认为 public abstract 类型,接口中的成员变量类型默认为 public static final (这里需要说一点,既然一个变量被final修饰了,那么这个变量就是一个常...

2017-07-20 13:43:05

阅读数 180

评论数 0

原创 关于java中静态属性、静态方法的继承问题

1、结论java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏。2、原因 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成,不需要继承机制就可以调用。如果子类里面定义了静态方法和属性,那么这时候父类的静态方法或属性称之为”隐藏”。如果你想要调用父类的静态...

2017-07-19 17:33:38

阅读数 254

评论数 0

转载 重载(Overload)和重写(Override)的区别

重载(Overloading)重载方法的规则:   1. 参数列表:被重载的方法必须改变参数列表。   2. 返回类型:可以改变返回类型。   3. 修饰符:可以改变修饰符。   4. 异常:可以声明新的或者更广泛的异常。其中:  1. 方法重载是让类以统一的方式处理不同类型数据的一种手...

2017-07-19 17:23:57

阅读数 416

评论数 0

转载 Reactor模式和Proactor模式

Reactor模式和Proactor模式同步I/O和异步I/O 同步I/O: 在同步文件IO方式中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行。 异步I/O: 在异步文件IO方式中,线程发送一个IO请求到内核,然后该线程继续处理其他的事情,内核完成I...

2017-07-19 12:58:22

阅读数 244

评论数 0

转载 Netty网络模型

Netty网络模型网络服务器的基本功能(流程)就是: 建立连接 -> 读取请求 -> 解析请求 -> 调用处理过程 -> 编码结果 -> 发送结果Netty是典型的Reactor模型结构。 传统多线程模型: 一个人来就餐,一个服务员去服务,然后客人会看...

2017-07-18 23:49:38

阅读数 1862

评论数 0

转载 不使用第三方变量交换两个参数的值

(1)算术运算 a = a + b; b = a - b; a = a - b; 位运算(异或) a = a ^ b; b = a ^ b; a = a ^ b;

2017-07-15 22:58:14

阅读数 180

评论数 0

原创 Java死锁的简单例子

Java死锁的简单例子两个线程互相占有对方需要的资源而不释放,便形成了死锁。代码如下: Program.java /** * 程序类 * @author michael * */ public class Program implements Runnable { //两个静态的资...

2017-07-15 15:49:56

阅读数 636

评论数 0

原创 ConcurrentHashMap中的putIfAbsent方法的使用以及返回值的含义

ConcurrentHashMap中的putIfAbsent方法的使用以及返回值的含义 public V putIfAbsent(@NotNull K key, @NotNull V value) putIfAbsent方法主要是在向Concur...

2017-07-13 22:09:29

阅读数 15136

评论数 0

转载 Spring框架中的单例模式(源码解读)

Spring框架中的单例模式(源码解读) 转载:http://www.cnblogs.com/chengxuyuanzhilu/p/6404991.html 单例模式是一种常用的软件设计模式。通过单例模式可以保证系统中一个类只有一个实例。 注:Spring源码的版本4...

2017-07-10 15:26:11

阅读数 7664

评论数 3

转载 Netty中的ChannelOption

Netty中的ChannelOption常用参数详解转载:http://www.cnblogs.com/googlemeoften/p/6082785.htmlChannelOption的各种属性在套接字选项中都有对应。 下面简单的总结一下ChannelOption的含义已及使用的场景。1、Ch...

2017-07-03 14:54:21

阅读数 3036

评论数 0

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