自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 入职工作感悟

   不知不觉入职时间已经有一年了,这一年来,感慨良多。     找工作前一直准备着互联网方向,自己也想找一个java的工作,确实也看了不少java方面的书籍,由于自己本科接触到java,也做过一些小项目,因此对java也算是相对熟悉。研究生找 工作期间也研读过java方面深度理解的书籍,包括找工作前也看过一些编程技巧和面试宝典等方面的知识,可是呢,由于各种原因,自己进互联网方面的愿望也随着签约某...

2018-07-05 22:34:09 2837 1

原创 ThreadLocal源码分析

每次看到ThreadLocal总要重新复习一下源码,今天总结一下:每个Thread类中有ThreadLocal.ThreadLocalMap threadLocals = null;这样的成员变量,ThreadLocalMap 是ThreadLocal的一个内部类,其中存储了当前ThreadLocal以及对应的value,这个threadLocals其实是一个map类型,会存储好多个键值对,相

2016-09-18 23:19:22 377

原创 数据库的四种隔离级别

1.读未提交:会出现脏读现象,读事务读到一个数据,但被写事务修改了,此时:写事务未禁止读事务,读事务也未禁止写事务2.读提交:会出现不可重复读。写事务禁止读事务,但读事务未禁止写事务3.可重复读:出现幻读。读事务禁止写事务,但未禁止读事务,写事务禁止其他事务4.串行:最高级别,禁止一切问题,但效率也比较低

2016-08-22 15:01:36 266

原创 Spring Aop的实现

最近几天看了Spring aop部分的源码,刚开始是看书的,那本业界还挺有名气的Spring技术内幕,但是看了好久也没看出个大概来,还总是忘。昨天决定用eclipse调试的功能来跟踪源码。到现在为止,脉络已经算比较清楚了。现总结如下:先看几个名词术语1.pointcut:切点,目标方法的范围,就是说那些方法需要被增强2.advice:通知,具体需要增强的方法,就是说需要为目标方法怎么增

2016-08-12 16:15:07 270

原创 关于java变量的初始化问题

变量初始化会在类加载阶段完成,这个时候主要执行方法,这个方法是类构造器,只负责静态变量赋值和静态代码块执行,而方法是实例构造器,主要负责实例变量初始化和构造方法的执行。看下面代码:public class TestDemo3{ public static void main(String[] args) { Base base=new sssu(); }} c

2016-05-14 19:18:19 384

原创 关于即时通信小项目的整理总结

1.客户端界面:登录界面:用户名,端口号,主机名聊天界面:聊天数据和在线用户列表2.服务器界面:端口号和在线用户列表项目启动第一步:服务器输入端口号后,点击启动服务器,这里发生了什么事情?这里,服务器立刻启动一个线程,暂且叫做serverConnectionThread,用于和客户端建立连接,当然,这里是必须用线程处理的,因为界面程序,费时操作是选择在新线程处理

2016-05-12 21:28:08 365

原创 关于java的反射机制及动态代理

java反射技术早都听说了,之前只是了解反射提供的方法,可是不知道反射技术到底该怎么使用,或者说什么时候能用到反射技术,最近看jvm有了一些新的感悟。首先,反射概念是什么?JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射。什么

2016-04-28 16:04:21 902

原创 深入理解jvm之分派

之前费了好大劲,一直想搞清楚 .class文件是个什么东东,因为我知道 .java 文件编译后是字节码的二进制文件,所以。。。有点蒙,因为在我的理解中,二进制文件就是文件中只有0和1的文件。。。。好吧,原来是我理解错误,但具体二进制文件是什么,查了好多资料,其实还是不理解,好吧,现在先不关心,只要清楚不是0和1就行了,因为使用javap查看的字节码中不是0和1啊。。。之前一直不解,现在理解的前提是

2016-04-27 22:38:39 387

原创 关于类加载器的理解以及双亲委派模型

我们知道,java字节码文件需要jvm进行加载到内存中才能执行,那么这个是怎么加载机制是怎样的呢?加载阶段需要完成的事情:1.通过一个类的全限定名获取定义此类的二进制字节流2.将这个字节流代表的静态存储结构转化为方法区的运行时数据结构3,在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口而完成加载阶段,靠的就是类

2016-04-26 17:18:05 558

原创 LinkedHashMap源码分析

接上一节关于HashMap的分析:LinkedHashMap继承HashMap,所以HashMap是LinkedHashMap的父类,HashMap有的方法LinkedHashMap都有,LinkedHashMap也会重写某些方法,我们知道,HashMap底层数据结构是数组和链表,那么LinkedHashMap会额外维护一个按照插入顺序排序的双向循环列表。 public

2016-04-25 22:13:00 248

原创 关于HashMap的源码分析

集合作为java中非常重要的一部分,在开发中经常被用到,而通过java源码实现可以更好理解底层实现。下面看java中的HashMap的源代码:首先,HashMap底层是通过数组和hash表实现的,底层的元素都是entry形式,通过计算每个entry的hash值来决定把entry放到哪个位置,如果出现hash冲突,则用链表解决。首先看entry类的代码:static

2016-04-25 17:24:40 278

原创 关于synchronized 和 线程间通信

下午对线程之间通信有了新的理解:这里只讨论synchronized 修饰 方法的情况,当然也分为两种情况:1.修饰普通方法2.修饰静态方法下面先讨论修饰普通方法的情况,当synchronized修饰方法的时候,这个对象会被上锁,就是说,不光是当前被synchronized修饰的方法不能被其他线程锁访问,这个对象的其他被synchronized修饰的方法也不能被其他线

2016-04-21 20:25:03 384

原创 关于序列化

把对象转换为字节序列的过程称为对象的序列化。  把字节序列恢复为对象的过程称为对象的反序列化。  对象的序列化主要有两种用途:  1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;  2) 在网络上传送对象的字节序列。  在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当

2016-04-14 22:10:58 234

原创 关于集合的源码实现问题——ArrayList

集合是java里面很重要而且比较常用的工具,了解java集合的源码实现可以帮助我们更好的理解集合的底层实现原理。通过阅读源码,将自己的成果进行记录以备以后复习用。首先,毫无疑问,ArrayList底层是用数组实现的。我们来看代码:private transient Object[] elementData; /** * The size of the ArrayLi

2016-04-14 21:14:34 243

原创 关于回调函数和多线程的一些问题

1,为什么要使用多线程?  除了提高处理器的利用效率,在当前线程等待的时间内可以去做另外的事情,不至于使处理器处于空闲状态,还有一些情况下也要使用。比如,代码的异步调用问题:一个java程序的界面,需要一个费时的操作,那么这个时候需要另外启动一个线程,否则的话,当前界面则需要一直等待这个费时操作的结束,界面上的一些工作将不得不停止,界面处于阻塞状态,这时候,可以启动一个新的线程,将这个

2016-04-13 12:24:56 11178

原创 java线程以及synchronized关键字的使用

有些东西花了好久看明白了,但是由于没有记录的缘故,过一段时间重新使用的时候又忘记了,所以为了使自己的努力可以复用,就写个文章记录一下自己关于线程的理解。线程使用的两种方法:1.继承Thread类2.实现Runnable接口习惯用第二种方法,构造器要传递实现Runnable类的对象多线程很重要的一个问题:构造对象的个数:如:package

2015-07-07 17:02:59 411

原创 赫夫曼编码实现

断断续续的用了两天时间,终于把传说中的赫夫曼树实现了,之前早都听说过,可是都被题目的难度给吓到了,这次有了前面的经验,决心要把赫夫曼编码实现。(当然其实应该也没有太大难度,但是对于我这么一个本科时候数据结构学的那么渣的人来说,能写出来还是有一点成就感的。)首先,赫夫曼(Huffman)树:带权路径长度最小的二叉树。赫夫曼算法:1.根据给定的n个权值构成n棵二叉树的集合F

2015-06-18 19:34:49 783 1

原创 用栈和队列实现魔王语言

接上一篇,链表的下一章是栈和队列,当然这一章还有个魔王语言的问题,也是当年的作业。别说实现了,当时连题目也没读懂,当时也太low了吧。ok,花了时间对这一章的内容进行了学习,并重新进行魔王语言的实现。首先先看需求分析:[问题描述]   有一个魔王总是使用自己的一种非常精练而抽象的语言讲话,没人能听的懂。但他的语言是可以逐步解释成人能懂得语言的,因

2015-06-16 09:21:43 4758 3

原创 链表实现约瑟夫环

前几天考网管的时候用到了数据结构课本,想当年那么头疼的一本书,现在突然觉得挺有意思的,就想回过头来看看。今天周六,上午无聊的在实验室待着,下午来的时候拿起了数据结构的课本。第一章链表中有一个很著名的约瑟夫环的问题,想当年也是老师留的题目之一,当时这一块有好多问题,包括结构体的定义,包括malloc函数的使用,包括链表的构造和实现。下午就重新对这一块进行了学习。约瑟夫问题的一种描述是:编号为1,

2015-06-13 20:47:41 690 1

原创 malloc 函数和new的区别

c和c++涉及到动态分配内存的问题时,难免会遇到malloc,今天查了一些资料,探究一下malloc的机制以及和c的区别。1.malloc 函数的原型:void *malloc(unsigned int num_bytes);  分配长度为num_bytes字节的内存块2.包含的头文件#include3.关于该函数的原型,在以前malloc返回的是char型指针,新的ANSIC标准规定

2015-06-13 12:00:05 451

java web学习视频

非常好的Java学习视频推荐,当时看了之后很有收获,如今回想起来分享给众多喜欢编程的朋友

2018-07-08

空空如也

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

TA关注的人

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