10 danchu

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 5w+

Java并发基础之CAS操作

什么是CASCAS是Compare And Swap的缩写,翻译成中文为比较并交换。java.util.concurrent包完全建立在CAS的基础之上,是由Java虚拟机提供的一种同步原语,实现了一种区别于synchronize同步锁的乐观锁。在CAS操作中,涉及到三个值:内存值A,旧的预期值B,要修改的新值C。当且仅当预期值B和内存值A相同时,将内存值A修改为C,否则什么都不做,一般C...

2018-03-18 23:47:56

虚拟机的类加载机制

虚拟机的类加载机制虚拟机的类加载机制,是一个被谈烂了的话题,估计只要学过java的人,都对其印象深刻,这里只是对这一部分的知识做一个总结、备忘。 一个Class文件要想成为能被Java虚拟机直接使用的Java类型,需要经历一系列的过程,这个过程称之为虚拟机的类加载机制,加载Class文件的模块就是类加载器。虚拟机中类唯一性判断Java中的类是由类加载器加载到虚拟机中的...

2018-03-14 23:33:25

Class文件结构分析

Class文件概述Class文件是一组以8字节为基础单位的二进制流,各个数据项目按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符根据Java虚拟机规范,Class文件采用一组类C结构来存储数据,只包含两种数据结构:无符号数和表。无符号数是基本数据类型,以u1,u2,u4,u8来分别表示1字节,2字节,4字节,8字节;表是由多个无符号数或者其他表构成的符合数据结构,习惯性的以”...

2018-03-04 15:20:29

JVM内存区域划分

JVM运行时数据区也被称为JVM内存。JVM内存划分为几个部分:程序计数器、栈、堆、方法区1. 程序计数器程序计数器是线程私有的,记录当前线程所执行的字节码的行号指示器2. 栈(Stack)栈是线程私有的,按照栈中存储方法的不同,栈可以分为虚拟机栈(JVM Stack)和本地方法栈(Native Stack)。HotSopt实现中,本地方法栈和虚拟机栈合二为一虚拟机栈...

2018-02-27 23:01:16

java I/O 系统

IO系统,是输入(Input)、输出(Output)系统的总称。对于程序语言设计者来说,设计一种好的IO系统是一项艰难的任务。因为IO系统真的很复杂: 1. 输入输出设备种类繁多,例如鼠标、键盘、文件、网络、控制台等 2. 输入输出方式繁多,例如:顺序输入输出、随机输入输出、带缓冲、按字符、按字节、按行等java作为一种较高层次的面向对象语言,其在设计IO系统的时候,初衷是为了屏蔽底层细节...

2018-02-25 20:43:42

Java知识点梳理

JVM基本知识Java内存区域垃圾回收与内存分配策略虚拟机性能检测与故障处理工具虚拟机的类加载机制(ClassLoader双亲委派) 多态实现机制Java中的语法糖Java与线程Java基础知识 数据结构List(ArrayList,LinkedList)Set(HashSet,LinkedSet,TreeSet)Map(HashMap, HashTable,TreeMap)Java8Java知识...

2017-11-06 10:05:15

logback配置

根节点ConfigurationConfiguration包含属性scan: 是否扫描配置文件的变化并重新加载,默认为truescanPeriod:扫描配置文件变化的时间间隔,只有当scan为true时生效。默认时间单位为毫秒,默认扫描间隔为1分钟。debug:是否打印logback内部的日志信息,可以实时打印logback运行状态。默认值为falseConfiguration包含四个常用的

2017-09-11 10:18:47

Java中的ThreadPoolExecutors

ThreadPoolExecutors作为JDK中提供的线程池类,经常被用来处理大量异步任务。为了能够被广泛的使用,该类提供了很多参数和可扩展的钩子,用来改变线程池的行为。

2017-08-22 16:27:26

使用Python快速搭建HTTP服务和文件共享服务

SimpleHTTPServerSimpleHTTPServer是Python自带的一个HTTP服务类,通过使用它,我们能够在任意平台(Window,Linux,MacOS)快速搭建一个HTTP服务和共享服务,只需要安装Python环境即可

2017-07-12 16:41:52

Mybatis知识点备忘

1.在Mapper中,如果需要生成嵌套的复杂对象,可以使用ResultMap,ResultMap中拥有这些属性<!-- Very Complex Result Map --><resultMap id="detailedBlogResultMap" type="Blog"> <constructor> <idArg column="blog_id" javaType="int"/>

2017-06-01 20:15:13

Kafka 设计与原理详解

原文地址:http://blog.csdn.net/suifeng3051/article/details/48053965 基本是翻译的kafka官方文档一、Kafka简介本文综合了我之前写的kafka相关文章,可作为一个全面了解学习kafka的培训学习资料。转载请注明出处 : 本文链接1.1 背景历史当今社会各种应用系统诸如商业、社交、搜索、浏览等像信息工

2017-05-23 20:17:25

curl常用用法

-v显示请求详细信息curl www.baidu.com -v-X 指定请求方式GET请求curl -X GET http://localhost:8080/search?data=123 # -X GET是可选的POST请求curl -X POST -d"data=123&key=456" http://localhost:8080/search -v 由于-d选项为使用POST方式向serve

2017-05-16 15:38:34

Google ProtoBuf快速入门

Protobuf是一个灵活的、高效的用于序列化数据的协议。相比较XML和JSON格式,protobuf更小、更快、更便捷。google protobuf是跨语言的,并且自带了一个编译器(protoc),只需要用它进行编译,可以编译成Java、python、C++、C#、Go等代码,然后就可以直接使用,不需要再写其他代码,自带有解析的代码。本篇文章将简要的介绍Java程序员如何使用Protobuf。安

2017-05-05 10:45:01

JavaBean中布尔类型使用注意

JavaBean是一个标准,遵循标准的Bean是一个带有属性和getters/setters方法的Java类。JavaBean的定义很简单,但是还有有一些地方需要注意,例如Bean中含有boolean类型的属性。我们知道对于一个属性来说,如果其命名为test,那么其getter和setter方法一般为getTest()和setTest。但是如果test为一个布尔类型,那么其getter和setter

2017-04-26 19:59:53

Junit单元测试

Junit是干什么的我在这里就不讲解了。直接开始正题。常用的注解Junit中的注解很多,我们首先来看一下最常用的一些注解 - @Test:把一个方法标记未测试方法 - excepted:用来测试异常的,方法抛出该异常说明测试成功 - timeout:用来测试性能的,在规定的时间内完成,说明成功。注意单位是毫秒 - @Before:每个测试方法执行前自动调用一次

2017-04-20 20:34:09

CGLIB(Code Generation Library)详解

什么是CGLIBCGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)。CGLIB作为一个开源项目,其代码托管在github,地址为:https://github.com/cglib/cglib为什么

2017-04-19 10:55:11

Java动态代理分析

Java动态代理机制的出现,使得Java开发人员不用手工编写代理类,只要简单地制定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分配到委托对象上反射执行,配置执行过程中,开发人员还可以进行修改代理设计模式代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息、过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。

2017-04-12 20:27:16

Servlet过滤器

Servlet过滤器 功能:可以动态地拦截请求和响应,以对请求和相应进行相应的处理常见的过滤器类型身份验证过滤器数据压缩过滤器加解密过滤器日志记录和审核过滤器字符编码过滤器配置过滤器通过Web.xml中的XML标签来声明,然后映射到应用程序中Servlet名称或者URL模式中。当Web容器启动Web应用程序时候,它会为web.xml中声明的每一个过滤器创建一个实例。<filter>

2017-04-11 20:53:30

Servlet的生命周期

Servlet的生命周期,分为三个阶段:1.初始化2.响应请求3.终止在初始化阶段中,Servlet被容器的自定义Classloader加载,然后执行init方法。init方法在Servlet的整个生命周期中只执行一次。Servlet并不是在Web容器启动的时候就全部加载到内存中去,而是采用懒加载模式,在下面几种情况下才会进行加载:

2017-04-10 16:53:05

Java中的ThreadLocal对象

1.什么是ThreadLocal    根据JDK文档中的解释:ThreadLocal的作用是提供线程内的局部变量,这种变量在多线程环境下访问时能够保证各个线程里变量的独立性。    从这里可以看出,引入ThreadLocal的初衷是为了提供线程内的局部变量,而不是为了解决共享对象的多线程访问问题。实际上,ThreadLocal根本就不能解决共享对象的多线程访问问题。2.ThreadLocal实现...

2017-04-04 23:32:47

查看更多

勋章 我的勋章
    暂无奖章