深入理解JDK中的I/O

深入理解JDK中的I/O

目 录

java内存模型
GC
HTTP协议
事务隔离级
并发多线程
设计模式
清楚redis、memcache并且知道区别
mysql分表分库
有接口幂等性了解
jdk8稍微了解一下特性

jvm内存模型:堆和非堆,http://www.cnblogs.com/RunForLove/p/4775999.html  对这部分的理解,只集中在关乎我们编程的东西部分。

  堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的。堆、非堆:虚拟机栈、本地方法栈、程序计数器、方法区、运行时常量池(存储编译期生成的各种字面量和符号引用)。

GC:是针对堆概念来的。1.堆内存具体点儿,又是这么来划分的?2.垃圾回收的算法大概是怎么样的?针对循环引用,有可达性分析算法。

http://www.importnew.com/14630.html

http://www.cnblogs.com/dolphin0520/p/3783345.html

三次握手:建立TCP需要三次握手才能建立,而断开连接则需要四次握手。

HTTP协议:

http协议基本流程:

1.打开HTTP连接。一定要记住HTTP是一种无状态协议。正因为如此,对于每一个请求你都要建立一个新的连接。
2.初始化方法请求。这里面将包含一些类型的方法指示符用来描述调用什么方法和方法所需要的参数。
3.设置HTTP请求头。这里面包含要传送的数据类型(二进制)和数据的总长。
4.发送请求。将二进制流写到服务器。
5.读取请求。目标servlet程序将被调用并接受HTTP请求数据。servlet程序就调用所有必要的参数选择相应的方法。注意,如果这是这个客户端的第一次请求,一个服务器对象的新的实例就会被创建。
6.调用方法。方法将会被服务器端的对象调用。
7.初始化方法响应。如果调用的方法抛出一个异常,客户将接收到出错信息。否则,返回的类型(如果有)将会被发送。
8.设置HTTP响应头。在响应头中,一定会设置待发送数据的类型和长度。
9.发送响应。二进制数据流将从Web服务器发送并返回给客户端。
10.关闭连接。

事务隔离级别,spring事务的传播机制: http://www.cnblogs.com/RunForLove/p/4641672.html

数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。

http://blog.csdn.net/fg2006/article/details/6937413  注意:我们讨论隔离级别的场景,主要是在多个事务并发的情况下,因此,接下来的讲解都围绕事务并发。

读未提交  读提交   重复读  序列化
时间: 2024-08-08 22:07:28

深入理解JDK中的I/O的相关文章

深入理解JDK中的Reference原理和源码实现

前提 这篇文章主要基于JDK11的源码和最近翻看的<深入理解Java虚拟机-2nd>一书的部分内容,对JDK11中的Reference(引用)做一些总结.值得注意的是,通过笔者对比一下JDK11和JDK8对于java.lang.ref包的相关实现,发现代码变化比较大,因此本文的源码分析可能并不适合于JDK11之外的JDK版本. Reference的简介和分类 在JDK1.2之前,Java中的引用的定义是十分传统的:如果reference类型的数据中存储的数值代表的是另一块内存的起始地址,就称这

JDK学习---深入理解java中的LinkedList

本文参考资料: 1.<大话数据结构> 2.http://blog.csdn.net/jzhf2012/article/details/8540543 3.http://blog.csdn.net/jzhf2012/article/details/8540410 4.http://www.cnblogs.com/ITtangtang/p/3948610.html 5.http://blog.csdn.net/zw0283/article/details/51132161 本来在分析完HashSe

【搞定面试官】谈谈你对JDK中Executor的理解?

前言 随着当今处理器计算能力愈发强大,可用的核心数量越来越多,各个应用对其实现更高吞吐量的需求的不断增长,多线程 API 变得非常流行.在此背景下,Java自JDK1.5 提供了自己的多线程框架,称为 Executor 框架. 1. Executor 框架是什么? 1.1 简介 Java Doc中是这么描述的 An object that executes submitted Runnable tasks. This interface provides a way of decoupling

浅析JDK中ServiceLoader的源码

前提 紧接着上一篇<通过源码浅析JDK中的资源加载>,ServiceLoader是SPI(Service Provider Interface)中的服务类加载的核心类,也就是,这篇文章先介绍ServiceLoader的使用方式,再分析它的源码. ServiceLoader的使用 这里先列举一个经典的例子,MySQL的Java驱动就是通过ServiceLoader加载的,先引入mysql-connector-java的依赖: <dependency> <groupId>m

Java并发(10)- 简单聊聊JDK中的七大阻塞队列

引言 JDK中除了上文提到的各种并发容器,还提供了丰富的阻塞队列.阻塞队列统一实现了BlockingQueue接口,BlockingQueue接口在java.util包Queue接口的基础上提供了put(e)以及take()两个阻塞方法.他的主要使用场景就是多线程下的生产者消费者模式,生产者线程通过put(e)方法将生产元素,消费者线程通过take()消费元素.除了阻塞功能,BlockingQueue接口还定义了定时的offer以及poll,以及一次性移除方法drainTo. //插入元素,队列

读深入理解Java中的String(包括JVM)一文总结和提升

读深入理解Java中的String(包括JVM)一文总结和提升 摘要:String作为Java语言中的字符串模拟类,无论是实际的编程工作还是笔试面试过程,都需要我们都String类非常熟悉,对于String类的大部分字符串操作方法,都必须达到熟练运用的程度才行.但是,笔试和面试过程中,面试官往往喜欢问一些String特性相关的题目,来考察面试者对于String基础知识的掌握是否牢固.(本人尚未研读深入理解JVM这本书,分析JVM都是查看网上资料来分析的,若在接下来的内容有分析不到位的地方请见谅和

夯实Java基础系列13:深入理解Java中的泛型

目录 泛型概述 一个栗子 特性 泛型的使用方式 泛型类 泛型接口 泛型通配符 泛型方法 泛型方法的基本用法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型方法总结 泛型上下边界 泛型常见面试题 参考文章 微信公众号 Java技术江湖 个人公众号:黄小斜 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star.Fork.Watch三连哈,感谢你的

深入理解CSS中的层叠上下文和层叠顺序(转)

by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=5115 零.世间的道理都是想通的 在这个世界上,凡事都有个先后顺序,凡物都有个论资排辈.比方说食堂排队打饭,对吧,讲求先到先得,总不可能一拥而上.再比如说话语权,老婆的话永远是对的,领导的话永远是对的. 在CSS届,也是如此.只是,一般情况下,大家歌舞升平,看不出什么差异,即所谓的众生平等.但是,当发生冲突发生纠葛的时

理解Linux中的load Averges

一.什么是load average? linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing).也有简单的说是进程队列的长度. Load Average 就是一段时间 (1 分钟.5分钟.15分钟) 内平均 Load . 我们可以通过系统命令"w"查看当前load average情况 [[email p