- 博客(10)
- 收藏
- 关注
转载 并发编程——线程基础
基本概念进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的。当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。进程就可以视为程序的一个实例。线程一个进程之内可以分为一到多个线程。一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给 CPU 执行 。Java 中,线程作为小调度单位,进程作为资源分配的最小单
2021-04-18 16:32:59
159
原创 从JVM底层看count++和++count操作
从JVM底层看count++和++count操作 static int count=0; public static void main(String[] args) { System.out.println(count++); } }[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kbNOrEZQ-1618734392147)(…/…/AppData/Roaming/Typora/typora-user-images/imag
2021-04-18 16:28:24
429
1
原创 对象实例化过程,内存布局,对象的访问定位以及直接内存
对象实例化过程,内存布局,对象的访问定位以及直接内存对象实例化创建对象的方式new最常见的方式变形1 : Xxx的静态方法变形2 : XxBuilder/XxoxFactory的静态方法Class的newInstance():反射的方式,只能调用空参的构造器,权限必须是publicConstructor的newInstance(Xxx):反射的方式,可以调用空参、带参的构造器,权限没有要求使用clone() :不调用任何构造器,当前类需要实现Cloneable接口,实现clone
2021-04-03 16:00:14
522
2
原创 JVM类加载子系统
JVM内存模型图多线程共享堆和方法区类加载子系统详解加载过程加载:通过类的全限定名查找此类的二进制流将这个类的静态存储结构转换为方法区的运行时数据结构在内存中生成一个Class对象作为方法区这个类的各种数据访问对象(https://www.cnblogs.com/qjwyss/p/14269318.html)数组类本身不是由类加载器创建,它是由java虚拟机直接在内存中动态构造出来的链接阶段验证: 确保Class文件的字节流中包含信息符合当前虚拟机要求 , 不会危害
2021-03-31 18:41:08
104
1
原创 Java BIO和NIO详解
I/O模型Java BIO 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器就需要启动一个线程处理 如果这个连接不做任何事情就会造成不必要的浪费Java NIO 同步非阻塞,服务器实现模式为一个线程处理多个请求,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询连接到有I/O请求就进行处理Java AIO异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的有效请求都是由OS先完成了再通知服务器应用去启动线程处理,一般适用于连接数较多且连接时间
2021-03-29 10:04:58
916
6
原创 HTTP请求过程详解
一次完整的HTTP请求过程当我们在web浏览器的地址栏中输入: www.baidu.com,然后回车,到底发生了什么对 www.baidu.com这个域名进行DNS域名解析,得到相应的IP地址根据这个IP地址找到相应的服务器,发起三次握手建立TCP连接后发起HTTP请求服务器响应HTTP请求,浏览器得到html代码浏览器解析html代码,并解析html代码,通过请求获取代码中的资源浏览器对页面进行渲染呈现给用户注:DNS域名解析采用的的是递归查询的方式,先通过查找DNS缓存->
2021-03-29 09:57:13
796
1
原创 thymeleaf使用th:href时会拼接上项目根地址的解决办法
thymeleaf使用th:href时会拼接上项目根地址的解决办法代码片段<a th:href="${cattegory.url}">cattegory.url是后端传过来的网站地址出现错误会在url地址前面拼接一个项目根路径解决办法在地址前面拼接上"http:/",就不会添加项目根目录了<a th:href="'http:/'+${cattegory.url}">...
2020-09-16 20:13:18
1251
原创 eclipse使用org.junit.jupiter.api.Tests时springcold测试类没有执行入口(Junit Test )解决办法
eclipse使用org.junit.jupiter.api.Tests时pringcold测试类没有执行入口(Junit Test )解决办法1.源代码如下2.没有执行方法3.解决办法:改为使用eclipse自带junit进行测试1.使用@RunWith指定测试类的运行环境,可以使用SpringRunner 和 SpringJUnit4ClassRunner,这样测试类就可以使用junit4或junit3来进行spring测试,更改后代码如下:4.更改之后就可以运行还有更好方法记得评论
2020-09-13 23:22:15
1119
原创 C语言标识符之关键字,预处理标识符和用户标识符的区别和关系
C语言标识符分类第一类:关键字定义由C语言规定的具有特定意义的字符串,通常也称为保留字。例如 int、char、long、float等。相当于已经被C语言本身特殊使用了的标识符,不可以再定义。在定义标识符的时候不能与关键字同名内容C语言有32个关键字数据类型关键字(12个)名称作用char声明字符型变量或函数double声明双精度变量或函数enum声明枚举类型float声明浮点型变量或函数int声明整型变量或函数long声明长整型变
2020-07-05 11:40:27
14082
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人