![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
文章平均质量分 76
Benson_CSU
熟悉Java平台开发,对Spring生态系统、MyBatis、Activiti等框架有所涉猎。喜好研究各种新兴技术。
熟悉Android开发
展开
-
《Java并发编程的艺术》读书笔记—— 线程池
线程池1.为什么要引入线程池 昨天和一老铁聊天时就说到了线程,他说线程是轻量级的进程,其实也可以这么说吧。在《Java并发编程的艺术》读书笔记——并发中的一些基础知识和问题中就介绍过线程是操作系统CPU调度的最小单位,线程会有独立的栈空间和程序计数器,线程其实也是一种比较重要的资源,如果对线程不适当的使用,反而会降低程序的性能。很多时候我们使用线程都是为了并发来提高效率,或者原创 2018-01-22 14:20:22 · 243 阅读 · 0 评论 -
Java内存管理
Java内存管理 学过几年Java的同学肯定都非常关心Java的内存管理,Java内存管理具有一定的自动化能力,不能C++那样申请的内存需要主动释放,Java释放内存是通知垃圾收集器回收的,垃圾收集器是JVM的一个后台线程,也不一定就是一个线程,现在的CMS和G1收集器可以实现并发的垃圾回收了。Java内存的自动...原创 2018-02-19 22:33:28 · 167 阅读 · 0 评论 -
关于大型系统下数据库的一些思考
关于大型系统下数据库架构的一些思考 最近在读曾宪杰大虾的《大型网站系统与Java中间件实践》这本书,感觉还是很有收获的。这本书主要讲了大型网站系统在建设过程中所面临的一些常见困难,并介绍了一些常用的解决方案。其中作者写的最多的一句话就是要根据实际场景具体分析最后选择解决方案。从书的第一页快看到结尾了(其实这已经是我第三遍看这本书了,基本每隔半年就看一遍,每次看都会有新的体会),也慢慢体...原创 2018-02-28 00:36:57 · 354 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记—— 原子操作类
原子操作类 在Java并发编程中,由于多线程安全的原因,我们在对共享变量进行操作访问时,会经常得到不正确的结果,比如说m = 1的共享变量,在两个线程并发地执行m += 1;之后,理应是m = 3,然后得到的结果可能是2,因为拿到的结果可能是某个线程操作后还未同步的值。从1.5开始,JDK提供了atomic包,里面包括了4种类型的原子更新方式,分别是原子更新基本类原创 2018-01-20 22:50:04 · 264 阅读 · 0 评论 -
Netty学习——TCP粘包/拆包的问题
TCP粘包/拆包的问题TCP粘包的概念 TCP是一个流协议,是通过输入输出流来输入输出数据的,因而底层是不知道业务逻辑。TCP的装包是根据TCP缓冲区的实际情况进行包的划分的,也就是TCP底层如果发现缓冲区的数据已经足够,才会把数据发送出来。这样,我们写到缓冲区中的数据其实是没有任何逻辑的,比如说可能我们写到缓冲区中的数据是1个半的消息(这个时候叫粘包,也就是多个业务逻辑包粘原创 2018-01-26 12:16:48 · 182 阅读 · 0 评论 -
Netty学习——用Netty实现一个简单的Http服务器
用Netty实现一个简单的Http服务器 Netty默认实现了Http的请求解析与响应封装,可以很方便地利用这些已经利用好的处理器来实现一个简单的Http服务器,或者自己实现更加复杂的Http服务器逻辑。下面是我用Netty实现的一个可以接收Http get或post请求的http服务器,并且可以解析出请求参数,然后生成一个页面,显示出请求参数。package study.net原创 2018-01-26 16:23:46 · 5634 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记——Look锁
Look锁Lock接口 Java提供的最原始的同步机制是synchronized,通过synchronized关键词,我们可以定义一个同步块或者同步方法,然而synchronized有很多局限性,比如无法获取锁状态,不能设置获取锁等待过期等等待。从JDK1.5开始,Java提供了Lock接口来扩展同步机制。Lock是一个接口,并且由此提供了很多同步组件。比如说如下代码使用了原创 2018-01-17 15:40:51 · 907 阅读 · 0 评论 -
Java网络编程——网络模型
网络模型计算机网络的概念 计算机网络是计算机+网络的集合。通过网络,把分布在不同地理位置的计算机用通信线路互连成一个具有强大功能的网络系统,每台计算机可以发送和接收其他计算机的网络数据。就如人与人交流需要语言一样,计算机之间的网线通信也需要特定的语言,如果语言不同还无法正常交流,计算机交流的语言被称能网络协议。再者,一台计算机如果想和另一台计算机进行通信的话,就必须知道另一台原创 2018-01-23 21:27:02 · 745 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记——Java内存模型
Java内存模型 1.线程通信 在操作系统中,我们曾学到过进程间通信的两种常见方法分别是共享内存和消息传递(这里也可见操作系统是多么重要,有些人觉得操作系统用户不大,但我觉得操作系统所学的内容还是非常重要的,很多领域都会涉及到)。通过共享内存来进行通信时,我们就要非常注意同步的问题,操作系统的进程章节很详细地叙述了同步的必要性、场景和解决方法,就不再敖述了。共享内存的原创 2018-01-16 15:53:23 · 210 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记——再论锁
再论锁晚上去世纪楼考完了最后一门“体系结构”,很多同学在qq空间里发表感慨什么复习了好多最后没看懂英文题目设计模式选错了,当然,类图肯定是画错了。我只能说我已经对考试无感了,三把剑走天下。挂科肯定是挂不了的,但我确实已经不再牵挂考试了,反正已经复习不下去了,早已开启了寒假模式,想想这应该是我最后一个寒假了,还是不免有点感伤的。在最开始的时候就讲到了锁,说到锁,就不得不说一下sync原创 2018-01-16 00:14:37 · 155 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记——volatitle
volatitle原理与应用说到Java多线程编程就不得不说volatitle这个关键词。volatitle是一种和sychronized差不多功用的东东,是轻量级的synchronized,它能保证共享变量在多处理器开发的“可见性”。这里的“可见性”指的是当两个线程在共享一个变量x的时候,由于缓存的问题,两个线程的CPU核会各有一份x,如果没有用volatitle的话,当我们在其中一个线程中原创 2018-01-15 23:46:03 · 222 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记——并发中的一些基础知识和问题
并发中的一些基础知识和问题1.多线程原理在操作系统课中线程讲的不多,讲的比较多的是进程。在操作系统中,进程是资源分配的基本单位,操作系统课主要讲的就是系统资源分配的问题,操作系统系统的主要任务也就是软硬件的资源管理。计算机资源包括硬盘、网络、CPU、内存等等。而线程是CPU多机调度的基本单位,多机调度系统中,为了充分利用CPU资源,操作系统会把CPU的时间分成非常多非常短的时间片,每一个时原创 2018-01-15 14:17:24 · 173 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记—— Executor框架
Executor框架 Executor是一个将任务与低层线程隔离的线程框架,通过把任务交给Executor框架,Executor把任务分配给线程池,线程池会根据操作系统创建内核线程,这样就可以把任务的提交和执行分离,达到程序更可控的效果 接口Executor是Executor的核心,用于将任务的提交和执行分离,而Executor还提供其他的类,比如说Exec原创 2018-01-22 14:52:12 · 186 阅读 · 0 评论 -
Java类加载
Java类加载 Java本身是一种静态语言,跟C++属于一种类型,这种语言类型的特点就是在运行前需要编译链接,而html、js之类的动态语言却可以一边解释一边执行,即使后面的代码有错误,前面也可以正常执行。这两类语言的优缺点也很明显,静态语言的执行速度会比动态语言快一些,但静态语言缺少了动态语言的一些动态性,比如...原创 2018-02-20 10:59:37 · 139 阅读 · 0 评论