自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chielong's csdn

a studying monkey

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 写写Mybatis

今天写一下Mybatis直接上代码,框架完成后放解释的图public class MySqlsession { private Excutor excutor = new MyExcutor(); private MyConfiguration myConfiguration = new MyConfiguration(); public <T>...

2018-08-10 17:25:55 274

原创 说说Http原理

注:1.请直接看六。2.一切从Http设计角度考虑。 一.Http请求过程:1.用户浏览器发送域名向DNS服务发送一个域名,请求其ip地址。2.DNS找到ip并返回给用户浏览器。3.用户浏览器向服务端浏览器发送请求。(地址、端口号、请求、参数等等)4.服务端向用户浏览器返回响应。二.Http特点http不面向链接,无状态(但我们可以用session+cookie来实...

2018-08-08 19:52:14 367

原创 谈谈Mysql索引

1.什么是索引和索引的特点索引是一种数据结构,能够提高数据的检索速度。索引也存储在硬盘上。索引特点:排好序,快速查找,数据结构2.Memory存储引擎——Hash索引 Memory存储引擎,内存数据表存储引擎。重启mysql之后丢失。特点:查找高效,理论上只查找一次。缺点:地址冲突。如果地址冲突比较多的话,索引的维护就比较麻烦,代价很高。局限:a.hash索...

2018-08-07 11:32:23 258

原创 手写Tomcat:NIO实现方式

 import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector...

2018-08-05 21:47:28 1204

原创 JVM:线程安全与锁优化

本文参考周志明老师的《深入理解Java虚拟机》一.Java语言中的线程安全1将java语言中各种操作各种操作共享的数据分为:a.不可变:一定是线程安全的。final修饰。b.绝对线程安全:调用时不需要额外控制即可完成同步。c.相对线程安全:需要额外控制手段。d.线程兼容:使用同步手段保证对象并发下安全使用。e.线程对立:就算用了同步措施也没ruan用。2.线程安全实...

2018-08-04 12:20:13 467

原创 JVM:JMM与线程

本文参考周志明老师的《深入理解Java虚拟机》一.硬件的效率与一致性二.JMM1.主内存和工作空间JMM主要是定义程序中各个变量访问规则。所有变量都存储在主内存。每条线程还有自己的工作内容。线程工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。不同线程之间也无法直接访问对方工作内存中的变量,线...

2018-08-04 11:41:17 342

原创 JVM::晚期(运行期)优化

本文参考周志明老师的《深入理解Java虚拟机》一.HotSpot即时编译器1.解释器和编译器快启动——解释器快执行——编译器分层编译:第0层:解释执行。第1层:将字节码编译为本地代码。(更快的速度)第2层:基于第一层的优化。(更高的质量)2.编译对象和触发条件3.编译过程二.编译优化技术1.基本套路第一步:方法内联。第二步:冗...

2018-08-04 10:27:18 292

原创 JVM::早期(编译期)优化

本文参考周志明老师的《深入理解Java虚拟机》一.Javac编译器1.解析与填充符号表a.解析:parseFiles();词法分析将源代码的字符流转化为标记(Token)集合。语法分析根据Token序列构造抽象语法树。b.填充符号表:enterTress();符号表是K—V键值对的形式。2.注解处理器如果注解处理器在处理注解的时候对语法树进行了修改,编译器将...

2018-08-04 02:41:17 391 1

原创 JVM:虚拟机类加载机制

本文参考周志明老师的《深入理解Java虚拟机》一.类加载的时机加载不一定发生在什么时候,但是遇到这种情况下必须马上对类进行初始化(当然加载验证等工作要在此之前已经完成):a.new、putstatic、getstatic、invokestatic。如果类还没有初始化就要先初始化。b.反射。c.对一个类初始化时,其父类没有被初始化,先初始化父类。d.虚拟机启动时。需要加载...

2018-08-03 18:16:00 231

原创 JVM:垃圾收集器和内存分配策略

本文参考周志明老师的《深入理解Java虚拟机》一.对象已死?1.引用计数法给对象添加一个引用计数器,每当有一个地方引用他时,计数器值加一,引用失效减一。为0时不可再被使用。2.可达性算法GCRoot选择:①虚拟机栈帧中引用的对象②方法区类静态属性应用对象③方法区常量引用对象④本地方法栈中引用对象。3.生存?还是死亡?可达性分析不可达,JVM会给对象做标记。如果fin...

2018-08-03 16:31:55 184

原创 JVM:自动内存管理机制

本文参考周志明老师的《深入理解Java虚拟机》一.运行时数据区1.虚拟机栈、本地方法栈、程序计数器是线程私有的。堆和方法区是线程公有的。2.PC:可以看作是当前线程所执行的字节码的行号指示器。3.Java虚拟机栈:线程私有。 内部是栈帧(包括:局部变量表,操作数栈,动态连接,方法出口等信息)。每一个方法从执行直至完成的过程,都对应着一个栈帧在虚拟机栈中入栈到出栈的过程。4....

2018-08-03 15:28:43 245

原创 纯Java——简易高并发框架

0.源代码github-简易高并发框架注:本篇博客知识来自于网课。1.问题来源以及w对于一个题库系统。考试组要有批量的离线文档要生成。题库组批量的题目要进行排重,且要根据条件批量修改题目内容。对于痛点:批量任务完成缓慢 所有的问题都围绕着“查询”,即查询进度影响总体性能 我们希望尽量使用友好(如果用多线程来提高性能,我们希望能屏蔽细节)因此我们需要一个可以提供查询进度...

2018-08-03 01:36:55 3412

原创 慕课网项目:Python开发简单爬虫学习笔记

课程链接Python开发简单爬虫 0.必要说明我的java版本1.8,python版本3.6,eclipse版本4.5,BeautfilSoup版本4。视频中用到的python版本2.7。有几个坑需要注意:python3.6不支持urllib2。而是换位:urllib。 百度百科页面模式变了,所以我们爬的话需要改变策略。1.爬虫简介 爬虫:一段自动抓取互联网信息的...

2018-08-02 18:52:37 394

原创 慕课网项目:Java高并发秒杀API的学习笔记(三)Web层分析

课程链接:Java高并发秒杀API之web层CSDN参考:Java高并发秒杀API(三)之Web层 0.说明本篇文章根据我自己的编程理解,结合参考的博客对该项目Web层进行分析与补充。1.Restful接口他兴起于Rails。是一种优雅的URI表述方式。表示资源的状态的状态的转移。2.幂等性多次操作j结果就像一次操作结果一样,这就是幂等的。否则非幂等。3.URL...

2018-08-02 01:42:22 551

原创 慕课网项目:Java高并发秒杀API的学习笔记(二)Service层分析

课程链接:Java高并发秒杀API之Service层CSDN参考:Java高并发秒杀API(二)之Service层 0.说明本篇文章根据我自己的编程理解,结合参考的博客对该项目Service层进行分析与补充。1.新加入的包说明dto:数据传输层,用于Web层和Service层之间传递的数据封装。exception:service层中会出现的异常。service:针对...

2018-08-01 23:10:16 300

原创 慕课网项目:Java高并发秒杀API的学习笔记(一)总述及DAO层分析

课程链接:Java高并发秒杀API之业务分析与DAO层CSDN参考:CSDN参考:Java高并发秒杀API(一)之业务分析与DAO层 笔者这几天忙着做项目,朋友推荐我去看这个慕课网的Java高并发秒杀API视频。看完之后真的是感觉干货满满且自己能力不足。本篇文章根据我自己的编程理解,结合参考的博客对该项目DAO层进行分析与补充。(中间笔记本突然死机,再次登录一看竟然什么都没有了。...

2018-08-01 19:17:11 1031

原创 《自己动手写Java虚拟机》学习笔记(十)异常处理及结束

第十章 异常处理10.1 异常概述java中,异常可分为:Checked异常和Uncheecked异常。Unchecked异常包括java.lang.RuntimeException、java.lang.Error及他们的子类。其他的异常都是Checked异常。所有的异常都要继承自java.lang.Throwable。如果一个方法有可能导致Checked异常抛出,则该方法要么需要...

2018-08-01 13:04:49 316

原创 《自己动手写Java虚拟机》学习笔记(九)本地方法调用

第九章 本地方法调用想要运行Java程序,出了Java虚拟机外,还需要Java类库的配合。Java虚拟机和Java类库一起构成了Java运行环境。Java类库主要用Java语言编写,一些无法用Java语言实现的方法则使用本地语言编写,这些方法叫做本地方法。9.1注册和查找本地方法在开始实现本地方法之前,需要先实现一个本地方法注册表,用来注册和查找本地方法。把本地方法定义成为一个函数...

2018-08-01 11:44:32 640

原创 《自己动手写Java虚拟机》学习笔记(八)数组和字符串

第八章 数组和字符串8.1数组概述如果数组元素是基本类型,就称之为基本类型数组,否则,如果数组元素是引用类型,就称之为引用类型数组。基本类型数组肯定都是一维数组,如果引用类型数组元素也是数组,那么它就是多维数组。在jvm中,数组类和普通的类是不同的。首先,普通的类从class问价加载,但是数组类由jvm在运行时生成。数组类名是左方括号+数组的类型描述符;数组的类型描述符就是类名本身。比...

2018-08-01 10:00:37 248

junit-4.12

csdn最少也得要3分下载。这是链接大家就不要破费了:https://github.com/junit-team/junit4/releases

2018-07-02

空空如也

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

TA关注的人

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