- 博客(15)
- 收藏
- 关注
原创 jvm原理
如何认识 Java 内存区域? 这里我说一下我是怎么去认识这个内存区域的。 比如说我们写了一个简单的java代码,然后编译成了class文件,这时候我们使用JVM去运行这个程序: 首先,jvm需要去加载并解析这个class文件,这时候就需规范出一个内存区域用来存放这些类信息:java虚拟机规范定义这个内存区域为方法区。 然后,jvm机会启动一个主线程来跑main函数,这时候就需要另一个内存区域来存放程序执行的位置,也就是程序计数器,所以我们可以知道,程序计时器是线程私有的。 然后,开始执行main方法,我们
2021-08-11 23:04:23
105
原创 JAVA基础知识回顾
基本数据类型 boolean jvm规范中并没有强制定义boolean对占用内存大小的定义, 由虚拟机厂商自行实现,hotspot虚拟机中boolean占用内存大小是1个byte char 2 byte 1 short 2 int 4 long 8 float 4 double 8 java的面向对象三大特性 继承 1、子类继承父类的所有属性和方法,私有类型和方法,无法访问, 2、子类可以拥有自己的方法,对父类进行扩展 3、可以覆盖父类的方法 多态 程序定义的引用变量锁指向的具体类型和通过该引用变量发
2021-08-11 15:57:01
111
原创 Eureka
对Eureka的个人理解 Eureka作为一个注册中心,其主要目的便是维护一个注册表,保存各服务的注册信息。 由于分布式系统的cap原则,我们知道,只能保证ap(高可用)或者cp(一致性)的其中一种。 Eureka主要解决的就是高可用的问题。 这时候我们就要思考,在哪些场景下需要保证高可用。如何实现高可用。 首先我们要保证客户端获取注册表信息的高可用,即不能因为网络问题导致客户端无法从服务端拿到注册表的服务数据。因此我们可以在客户端缓存一份注册表,并定时从服务端获取和整理更新注册表信息,而不是每次需要数据的
2021-08-10 16:25:03
117
原创 IntelliJ idea 的常用插件
记录一些比较好用的idea插件,并且我会持续更新,读者有什么其他好用插件也可以在留言告诉我,欢迎大家一起分享和交流。
2021-07-19 10:48:39
159
原创 Linix常用命令
Linix常用命令 常用命令 监控文件(用于查看日志) tail -f text.txt 查看线程 ps -ef ps -ef |gerp tomcat 查看端口使用情况 netstat -anop netstat -anop | grep 22528 文件操作 软链接 ln -s 源文件 目标文件 例如:ln -s /bin/less /usr/local/bin/less 硬链接 ln 源文件 目标文件 例如:ln /bin/less /usr/local/bin/less 【硬
2021-03-09 00:16:18
174
1
原创 JAVA泛型程序设计
类型变量使用大写形式,且比较短, 这是很常见的。在 Java 库中, 使用变量 E 表示集合的元素类型, K 和 V 分别表示表的关键字与值的类型。T ( 需要时还可以用临近的字母 U 和 S) 表示“ 任意类型”。 1.简单的泛型类 public class Pair<T> { private T first; private T second; p...
2021-03-08 16:08:37
122
原创 Java集合类源码解析
在 Java 类库中,集合类的基本接口是 Collection 接口。这个接口有两个基本方法: boolean add(E element); Iterator<E> iterator(); Iterator接口包含 4 个方法: 如果实现 Collection 接口的每一个类都要提供如此多的例行方法将是一件很烦人的 事情。为了能够让实现者更容易地实现这个接...
2021-03-08 16:05:00
155
原创 使用Lambda表达式和Comparator进行自定义排序
package com.lambda; /** * @Author zwp Created on 2018/8/16. */ public class AA { private Integer a ; private int b ; public Integer getA() { return a; } public ...
2021-03-08 16:02:50
624
原创 Linux安装mysql流程
说明 服务器:阿里云服务器 系统:Centos7 Mysql版本:5.7.23 工具:MobaXterm 一.下载 官网 下载至/usr/local/src cd /usr/local/src/ wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar....
2021-03-08 16:01:24
119
3
原创 常用快捷键总结(包含win系统快捷键、IDEA快捷键、workBean快捷键)
Ctrl+ Shift + i 弹出窗口查看 Alt + F7 Ctrl + Alt + T 提供的是代码块包裹功能 - Surround With。可以快速将选中的代码块,包裹到选择的语句块中。
2019-10-18 16:45:08
99
原创 彻底认识Java数组和ArrayList
数组 数组在Java中是一个对象,数组实例同样是使用new操作符创建的。Array.length指定了数组长度 数组索引起始为0,负数索引在Java中是无效的,会抛出ArrayIndexOutOfBoundException 数组存储在Java堆的连续内存空间,所以如果你创建一个大的索引,你可以有足够的堆空间直到抛出OutofmemoryError,因为请求的内存大小在连续的内存空间不可用。...
2018-09-12 22:27:05
378
原创 位运算符和 >> 和 >>>的区别
>> << 位模式左右移 高位补符号位 >>> 位模式右移高位补0 不存在<<< 下面举两个例子: eg:(-16>>1) 原码: 1000 0000 0000 0000 0000 0000 0001 0000 ...
2018-09-12 13:33:40
2377
原创 MySQL 事务隔离
事务隔离级别: 未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据 提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 (不重复读) 可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重...
2018-08-27 15:47:34
209
原创 Java 并发编程——线程
多线程的实现方法 Java 中实现多线程有两种方法:继承 Thread 类、实现 Runnable 接口 使用 interrupt()中断线程 当对一个线程调用 interrupt 方法时,线程的中断状态将被置位。这是每一个线程都具有 的 boolean 标志。每个线程都应该不时地检査这个标志, 以判断线程是否被中断。 package com.ping; import ja...
2018-08-23 10:35:05
142
原创 通过堆栈轨迹( stack trace )获得一个方法的调用过程
堆栈轨迹( stack trace ) 是一个方法调用过程的列表, 它包含了程序执行过程中方法调用 的特定位置前。 eg: package com.v1ch07.stackTrace; import java.io.PrintWriter; import java.io.StringWriter; import java.util.*; public class StackTrac...
2018-08-16 16:36:29
3841
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人