自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 JUC-第3章 Java线程

1 创建和运行线程1.1直接使用 Thread1.2使用 Runnable 配合 Thread把【线程】和【任务】(要执行的代码)分开Thread 代表线程Runnable 可运行的任务(线程要执行的代码)Java 8 以后可以使用 lambda 精简代码小结1.3FutureTask 配合 Thread。

2023-09-21 21:36:22 37 1

原创 JUC-第3章 Java线程

1共享带来的问题以上的结果可能是正数、负数、零。为什么呢?因为,要彻底理解,必须从字节码来进行分析临界区 Critical Section一个程序运行多个线程本身是没有问题的,问题出在多个线程访问共享资源,多个线程读共享资源其实也没有问题,在多个线程对共享资源读写操作时发生指令交错,就会出现问题一段代码块内如果存在,称这段代码块为临界区竞态条件 Race Condition多个线程在临界区内执行,由于代码的执行序列不同而导致结果无法预测,称之为发生了竞态条件。

2023-09-21 21:22:50 35 1

原创 JUC-第2章 进程与线程

2.多核cpu可以并行跑多个线程,但能否提高程序运行效率还是要分情况的:有些任务,经过精心设计,将任务拆分,并行执行,当然可以提高程序的运行效率。(Inter-process communication),不同计算机之间的进程通信,需要通过网络,并遵守共同的协议,例如 HTTP线程通信相对简单,因为它们共享进程内的内存,多个线程可以访问同一个共享变量。的,而线程存在于进程内,是进程的一个子集,进程拥有共享的资源,如内存空间等,供其内部的线程共享。ui程序中,开线程进行其他操作,避免阻塞ui线程。

2023-09-21 21:14:19 36 1

原创 第 7 章 确保 Web 安全的HTTPS

HTTP 协议中没有加密机制,但可以通过和 SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密 HTTP 的通信内容。以客户端证书进行客户端认证,证明服务器正在通信的对方始终是预料之内的客户端,其作用跟服务器证书如出一辙。其中的一个问题点是证书的获取及发布。无论世界哪个角落的服务器在和客户端通信时,在此通信线路上的某些网络设备、光缆、计算机等都不可能是个人的私有物,所以不排除某个环节中会遭到恶意窥视行为。

2023-09-18 21:29:28 42

原创 第 6 章 HTTP 首部

调用 Cookie 时,由于可校验 Cookie 的有效期,以及发送方的域、路径、协议等信息,所以正规发布的 Cookie 内的数据不会因来自其他Web 站点和攻击者的攻击而泄露。原本的意图是想和网景公司制定的标准交互应用,可惜发生了微妙的差异。在客户端发送请求和服务器返回响应内,使用 Connection 首部字段,可控制不再转发给代理的首部字段(即 Hop-by-hop 首部)。HTTP/1.1 的 Warning 首部是从 HTTP/1.0 的响应首部(Retry-After)演变过来的。

2023-09-18 21:26:32 61

原创 第 4 章 返回结果的 HTTP 状态码

在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。比如,用户把 URI 保存成书签,但不会像 301 状态码出现时那样去更新书签,而是仍旧保留返回 302 状态码的页面对应的 URI。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回 204 响应,那么浏览器显示的页面不发生更新。也就是说,如果已经把资源对应的 URI保存为书签了,这时应该按 Location 首部字段提示的 URI 重新保存。服务器端没有必要给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分。

2023-09-18 21:21:14 26

原创 第7章 虚拟机类加载机制

3。

2023-09-18 21:17:18 20

原创 第 3 章 HTTP 报文内的 HTTP信息

比如英语版和中文版的 Web 页面,它们内容上虽相同,但使用的语言却不同。当浏览器的默认语言为英语或中文,访问相同 URI 的 Web 页面时,则会显示对应的英语版或中文版的 Web 页面。请求端(客户端)的HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应报文。内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为适合的资源。是 HTTP 通信中的基本单位,由 8 位组字节流(octet sequence,其中 octet 为 8 个比特)组成,通过 HTTP 通信传输。

2023-09-18 21:15:57 37

原创 第 2 章 简单的 HTTP 协议

因此,每次的请求都会造成无谓的 TCP 连接建立和断开,增加通信量的开销。发送请求时,在 Max-Forwards 首部字段中填入数值,每经过一个服务器端就将该数字减 1,当数值刚好减到 0 时,就停止继续传输,最后接收到请求的服务器端则返回状态码 200 OK 的响应。服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。综合来看,这段请求内容的意思是:请求访问某台 HTTP 服务器上的/index.htm 页面资源。

2023-09-18 21:13:19 24

原创 第1章 了解Web及网络协议

(并不是所有的应用程序都符合 RFC,有一些用来制定 HTTP 协议技术标准的文档,它们被称为RFC(Request for Comments,征求修正意见书)。地址可以是类似hackr.jp 这种 DNS 可解析的名称,或是 192.168.1.1 这类 IPv4 地址名,还可以是 [0:0:0:0:0:0:0:1] 这样用方括号括起来的 IPv6 地址名。从电缆的规格到 IP 地址的选定方法、寻找异地用户的方法、双方建立通信的顺序,以及 Web 页面显示需要处理的步骤,等等。而协议是指规则的约定。

2023-09-18 21:09:04 216

原创 第13章 线程安全与锁优化

在代码即将进入同步块的时候,如果此同步对象没有被锁定(锁标志位为“01”状态),虚拟机首先将在当前线程的栈帧中建立一个名为锁记录(Lock Record)的空间,用于存储锁对象目前的Mark Word的拷贝(官方为这份拷贝加了一个Displaced前缀,即Displaced Mark Word),这时候线程堆栈与对象头的状态如图13- 3所示.轻量级锁是JDK 6时加入的新型锁机制,它名字中的“轻量级”是相对于使用操作系统互斥量来实现的传统锁而言的,因此传统的锁机制就被称为“重量级”锁。

2023-09-18 20:47:58 20

原创 第12章 Java内存模型与线程

广义上来讲,一个线程只要不是内核线程,都可以认为是用户线程(User Thread,UT)的一种,因此从这个定义上看,轻量级进程也属于用户线程,但轻量级进程的实现始终是建立在内核之上的,许多操作都要进行系统调用,因此效率会受到限制,并不具备通常意义上的用户线程的优点。,处理器会在计算之后将乱序执行的结果重组,保证该结果与顺序执行的结果是一致的,但并不保证程序中各个语句计算的先后顺序与输入代码中的顺序一致,因此如果存在一个计算任务依赖另外一个计算任务的中间结果,那么其顺序性并不能靠代码的先后顺序来保证。

2023-09-18 20:46:54 18

原创 第8章 虚拟机字节码执行引擎

通过第6章的讲解,我们知道Class文件的常量池中存有大量的符号引用,字节码中的方法调用指令就以常量池里指向方法的符号引用作为参数。这类⽅法的调⽤被称为。这时候可能会有返回值传递给上层的方法调用者(调用当前方法的方法称为调用者或者主调方法),方法是否有返回值以及返回值的类型将根据遇到何种方法返回指令来决定,这种退出方法的方式称为“无论是Java虚拟机内部产生的异常,还是代码中使用athrow字节码指令产生的异常,只要在本方法的异常表中没有搜索到匹配的异常处理器,就会导致方法退出,这种退出方法的方式称为“

2023-09-18 20:43:41 19

原创 第6章 类文件结构

也就是说,在Class⽂件中不会保存各个⽅法、字段最终在内存中的布局信息,这些字段、⽅法的符号引⽤不经过虚拟机在运⾏期转换的话是⽆法得到真正的内存⼊⼝地址,也就⽆法直接被虚拟机使⽤的。任何一个Class文件都对应着唯一的一个类或接口的定义信息,但是反过来说,类或接口并不一定都得定义在文件里(譬如类或接口也可以动态生成,直接送入类加载器中)。,它是Class⽂件结构中与其他项⽬关联最多的数据,通常也是占⽤Class⽂件空间最⼤的数据项⽬之⼀,另外,它还是在Class⽂件中第⼀个出现的。

2023-09-18 20:33:48 16

原创 第4章 虚拟机性能监控、故障处理工具、内存调优

JVM Heap Analysis Tool命令是与jmap搭配使⽤,⽤来分析jmap⽣成的dump,jhat内置了⼀个微型的HTTP/HTML服务器,⽣成dump的分析结果后,可以在浏览器中查看。多合-故障处理工具,提供有关在Java虚拟机中运行的基于Java技术的应用程序的详细信息,提供内存和CPU分析,堆转储分析,内存泄漏检测,访问MBean和垃圾回收。1)监控GC的状态,使⽤各种JVM⼯具,查看当前⽇志,并且分析当前堆内存快照和gc⽇志,根据实际的情况看是否需要优化。1 基础故障处理工具。

2023-09-18 20:33:11 42

原创 第3章 垃圾收集器与内存分配策略

这个收集器是直到JDK 6时才开始提供的,在此之前,新⽣代的Parallel Scavenge收集器⼀直处于相当尴尬的状态,原因是如果新⽣代选择了Parallel Scavenge收集器,⽼年代除了Serial Old(PS MarkSweep)收集器以外别⽆选择,直到Parallel Old收集器出现后,“吞吐量优先”收集器终于有了⽐较名副其实的搭配组合,这个阶段需要停顿线程,但耗时很短,而且是借用进行Minor GC的时候同步完成的,所以G1收集器在这个阶段实际并没有额外的停顿。

2023-09-18 20:32:01 18

原创 第2章 Java内存区域与内存溢出异常

对齐填充,这并不是必然存在的,也没有特别的含义,它仅仅起着占位符的作用。,即我们在程序代码里面所定义的各种类型的字段内容,无论是从父类继承下来的,还是在子类中定义的字段都必须记录起来。这区域的内存回收目标主要是针对常量池的回收和对类型的卸载,一般来说这个区域的回收效果比较难令人满意,尤其是类型的卸载,条件相当苛刻,但是这部分区域的回收有时又确实是必要的。,因为虚拟机可以通过普通Java对象的元数据信息确定Java对象的大小,但是如果数组的长度是不确定的,将无法通过元数据中的信息推断出数组的大小。

2023-09-18 20:28:14 15

空空如也

空空如也

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

TA关注的人

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