0 weixin_47786053

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 49w+

JVM内存模型

JVM的内存模型JVM运行时的内存区域可以分为两大类一个是线程私有区 有:程序计数器 在JVM中占内存比较小的地方,唯一一块不会发生OOM会告诉你执行的代码归于哪一行 上下文切换的时候可以回到正确状态。虚拟机栈 使用栈帧 方法在执行的同时都会创建一个栈帧用于存储变量和方法的信息,一个方法的调用就是从入栈到出栈的过程。本地方法区 虚拟机栈为执行 Java 方法服务, 而本地方法栈则为Native 方法服务然后是线程共享区方法区 存放永久代 常量池常量 类的信息堆 存放实例 是GC的主要区

2020-09-12 11:37:01

TCP的可靠传输原理

理想的传输条件有以下两个特点:1.传输信道不产生差错。2.不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。在这样的理想传输条件下,不需要采取任何措施就能够实现可靠传输。然而实际的网络都不具备以上两个理想条件。必须使用一些可靠传输协议,在不可靠的传输信道实现可靠传输。停止等待协议1.停止等待。发送方每次只发送一个分组。在收到确认后再发送下一个分组。2.编号。对发送的每个分组和确认都进行编号。3.自动重传请求ARQ (Automatic Repeat reQuest)。发送方为

2020-08-29 09:49:08

HTTPS加解密原理

HTTP(Hypertext Transfer Protocol)超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议,可以说 HTTP 是当代互联网通信的基础。但是HTTP在传输数据时信息都是明文的,没有经过任何加密,而这些明文数据会经过WiFi、路由器、运营商、机房等多个物理设备节点,如果在这中间任意一个节点被监听,传输的内容就会完全暴露,因此很容易出现数据被监听和窃取的情况。为了解决HTTP明文传输数据可能导致的安全问题,1994年网景公司提出了HTTPS(HyperText T

2020-08-22 09:45:43

Thymeleaf基本语法小结

Thymeleaf表达式所有表达式都应该写在HTML5中的自定义属性th中。变量表达式:变量表达式即OGNL表达式或Spring EL表达式(在Spring中用来获取model attribute的数据)。 如下所示${user.name}<span th:text="${text}">你好 thymleaf</span><span>标签中的内容会被表达式${text}的值所替代,无论模板中它的内容是什么。Thymeleaf的基本变量和JSP一样,都使用${.}表示获取变

2020-08-08 09:18:12

java1.7与1.8的部分新特性

jdk1.7可以用二进制来表示整数,用0b或0B开头。在数字间可以增加’_'符号提高阅读性int a = 0b1111;int b = 0b1111_1111;Switch语句支持string类型(通过调用switch中str.hashCode,将str转换为int从而进行判断。)switch (str) { case "aaa": System.out.println("aaa"); break; case "123": System.out.println

2020-08-01 09:30:10

Ajax中get和post方法

ajax()方法$.ajax({url:请求地址type:"get | post | put | delete " 默认是get,data:请求参数 {"id":"123","pwd":"123456"},dataType:请求数据类型"html | text | json | xml | script | jsonp ",success:function(data,dataTextStatus,jqxhr){ },//请求成功时error:function(jqxhr,textStatus,

2020-07-11 08:42:47

JVM的垃圾回收算法

如何确定垃圾想要回收垃圾,首先要判断对象是否可视为垃圾。确定垃圾的方法有两种,分别是引用计数法和可达性分析算法。1.引用计数法使用引用计数法,要先给每一个对象中添加一个计数器,一旦有地方引用了此对象,则该对象的计数器加1,如果引用失效了,则计数器减1。这样当计数器为0时,就代表此对象没有被任何地方引用。缺点是会产生循环依赖,如果两个对应互相引用,导致他们的引用计数都不为0,最终不能回收他们。2.可达性分析算法在大部分主流语言中都是通过此方法来判断对象是否存活的,这个算法的思想是通过一系列被称为“

2020-07-04 09:15:17

浅谈对JVM的理解

这篇文章主要是写给一些新人方便理解JVM在Java中所承担的角色,其中没有涉及太多专业性的知识。编程使用的是汇编语言,是人容易理解记忆并被统一规定的语言。但这些语言计算机中的机器硬件肯定是不认得的,机器的本质是高低电平的转换,因此机器语言是能被机器直接识别并由计算机中相应的的电路来完成的二进制语言。我们使用某一编程软件,便是写入我们所能理解的语言,由软件代为翻译成计算机所能理解的语言并在计算机上执行。通过Java使汇编语言转换成机器语言大致流程如下。首先,我们需要知道的是:我们不可能直接对着一块电路

2020-06-20 09:50:47

Lambda表达式的介绍和使用方法

Java在1.8版本引入了Lambda表达式,它属于函数式编程思想。它和面向对象的思想有很大的不同。面向对象的思想提倡:创建对象,调用方法,解决问题。而函数时编程思想注重的是方法,不关注过程,只注重结果。当要实现的方法比较简单,或是只要被调用一次时,若使用面向对象的的思想,会增加代码量。如果这时候使用Lambda表达式,可以大大减少代码量,一定程度上提高代码编写效率。以下代码可以实现与上方相同的功能。Lmabda表达式的语法(parameter) ->{statements;}括号中的值为参

2020-06-06 09:32:55

线程池的工作流程

线程池中参数最全的构造方法有7个参数当一个任务(runnable)被添加时一、判断当前线程数量是否达到核心线程最大值(corePoolSize),若当前线程数<corePoolSize ,则创建核心线程执行任务。若当前线程数>corePoolSize,则尝试进入阻塞队列BlockingQueue。二、判断队列是否已满,若未满,则进入队列等待,若已满,则尝试创建非核心线程。三、线程总数最大值(maximumPoolSize)=核心线程最大值(corePoolSize)+非核心线程最大值。线

2020-05-29 23:02:16

JAVA中Date DateFormat Calendar 的互相转换

Data(日期) DateFormat(日期格式) Calendar(日历)三个类的灵活运用可以解决JAVA中大部分与时间有关的问题。Data->DateFormat将当前日期转换成预期的格式DateFormat是抽象类,不能实例化,因此用它的子类SimpleDateFormatSimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm ss"); String text = format.format(new Date(

2020-05-23 09:20:44

简单的五子棋小游戏

import java.util.Scanner;public class Demo2 {public static void main(String[] args) { Scanner input = new Scanner(System.in); int[][] chess = new int[16][16]; int n = 1; int a = 0; int b = 0; int finish = 1; while(true) { //输入落子 if(n=

2020-05-16 23:28:01
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。