- 博客(28)
- 收藏
- 关注
原创 calss常量池、常量池、运行时常量池和字符串常量池
最近在看jvm,发现了好多常量池,搞不清区别,查看了好多篇博客,简单总结一下。Class常量池我们写的每一个Java类被编译后,就会形成一份class文件;class文件中除了包含类的版本、字段、方法、接口等描述信息外,还有一项信息就是常量池(constant pool table),用于存放编译器生成的各种字面量(Literal)和符号引用。常量池常量池是Class常量池中的一部分,可以看作是一张表、虚拟机指令根据这张表找到吆执行的类名、方法名、参数类型、字面量等类型。运行时常量池Class常
2020-08-21 18:00:29
217
原创 redis的持久化
Redis官方提供了两种持久化的方式来将数据存储到硬盘上快照(Snapshot):保存这一时刻的数据状态AOF(Append only File):之追加日志文件,将所有的redis写命令记录到日志文件中。快照持久化这种方式可以将某一时刻的所有数据写到的硬盘上,当然也是redis默认开启的一种方式,因为生成的文件是.rdb文件,所以又可以叫做rdb方式。快照的生成方式1.客户端方式生成:BGSAVE和SAVEBGSAVE:客户端可以使用这个命令来创建一个快照,放接受客户端BGSAVE时,r
2020-08-18 14:31:51
248
原创 spring工厂和bean生命周期
spring工厂创建对象创建简单对象可以直接通过new构造方法创建对象,比如UserDao、UserService创建复杂对象值得是不通过直接的new的方式创建对象。比如Connection、SqlSessionFactory。spring创建复杂对象实现FactoryBean接口,重写其中的三个方法public class MyFactory implements FactoryBean {//用于书写创建复杂对象的方法,并返回 @Override public Obj
2020-08-17 08:15:09
370
原创 python中的几种数据类型
剑指Offer 24给定一个二叉树和一个目标和,判断该是否存在树的根节点到叶子节点的路径,这条路经上的所有经过的节点和等于目标和思路:用递归的思想,深度优先的思想,先判断经过节点的所有左子节点的和,在判断右子节点,如下图先经过,2,4,11,7,再判断5、4、11、2,再判断5、4、一次判断,最终到达所有的子节点。如果存在,就返回true,没有就返回false。public boolean solution(TreeNode root , int sum){ if (root==
2020-08-15 21:14:18
324
原创 springboot整合shiro
剑指Offer22从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:定义一个链表和一个数组,链表用来存放二叉树的节点,数组用来存放打印的结果,先将根节点放入链表,然后将其弹出,并放入数组中,如果弹出的节点左子节点不为空,将左子节点放入链表中,如果弹出的节点右子节点不为空,放入链表中,然后一直循环,直到链表为空。public class Offer22 { public static ArrayList<Integer> solution(TreeNode root){
2020-08-13 22:03:47
338
原创 JWT的基础使用
剑指Offer17输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路:将这个矩阵从外层进行遍历,先算出需要遍历几层,然后再根据二维数组的性质,遍历每层的上、右、下、左四层的元素。public static ArrayList<Integer> solution(int[
2020-08-11 21:12:11
308
原创 网络编程中TCP/UDP编程的实例
剑指Offer 16socket编程示例1.利用scoket进行字符传递,并显示在控制台中客户端import java.io.IOException;import java.io.OutputStream;import java.net.InetAddress;import java.net.Socket;//客户端public class ClientTest { public static void main(String[] args) { Socket
2020-08-09 10:01:35
170
原创 剑指offer14、15
Offer 14输入一个链表,反转链表后,输出新链表的表头。思路分析,定义三个指针 pre mid behind,将pre指向链表的头节点,mid指向head.nex,behind指向mid.next,将mid.next指向pre,然后江三个指针后移一位,将mid.next指向pre,直到behind.next为null。//输入一个链表,反转链表后,输出新链表的表头。public class Offer4 { public static ListNode solution(ListNode
2020-08-07 19:52:32
135
原创 springboot集成jsp页面
1.以前我们在创建web项目时j,都是把jsp放在wenapp的页面下,如果在springboot页面下也是一样。创建一个webapp包2.此时webapp只是一个普通的文件夹需要将其设置成web资源文件夹在模块中找到你的webapp文件夹然后就变成3.添加解析jsp的依赖<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-em
2020-08-04 17:46:29
592
原创 cookie和session
剑指Offer13输入一个链表,输出该链表中倒数第k个结点。//输入一个链表,输出该链表中倒数第k个结点。public class Offer13 { public static ListNode solution( ListNode head , int k){ if (head==null||k==0){ return null; } //头指针 ListNode front = head;
2020-08-04 15:42:43
88
原创 前后端分离springboot和vue传参的400问题
今天用spring boot和vue做一个小项目在用axios向后台传参是总是传不过去axios.post("http://localhost:8080/user/register?code="+this.code+"&key="+this.key,this.user).then((res)=>{ console.log(res.data); }).catch(function (err) {
2020-07-30 15:19:25
1644
原创 Springboot与vue的前后端分离的demo
这几天学习了前端框架vue就使用springboot和vue做了一个小demo用户的增删改操作。pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac
2020-07-29 11:52:59
487
原创 JVM学习之垃圾回收器
剑指 Offer12输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。(保证数组的稳定性)//输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,// 所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。public class Offer12 { public static void main(String[]
2020-07-27 22:22:04
169
原创 垃圾回收相关概念
剑指Offer 11输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。//输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。public class Offer11 { public static void main(String[] args) { System.out.println(new Offer11().solution(7)); } public int solution(int n){ i
2020-07-26 21:17:19
128
原创 JVM学习之字符串常量池和垃圾收集算法
今天学习了JVM中的字符串常量池和集中垃圾手机算法,收获很大。剑指Offer 9用2×1的小矩形去填充2×n的矩形,问共有多少种填充的方法?//用2×1的小矩形去填充2×n的矩形,问共有多少种填充的方法?public class Offer9 { public static void main(String[] args) { Offer9 offer9 = new Offer9(); int i = offer9.rectCover(9);
2020-07-25 21:48:57
679
原创 JVM学习之方法区(元空间)
剑指 Offer 9一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。//青蛙跳台//一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。public class Offer9 { public static void main(String[] args) { Offer9 offer9 = new Offer9(); int i = off
2020-07-25 07:53:12
586
原创 JVM学习之堆(heap)
今天继续学习JVM的第二天,主要学习了JVM运行时数据区的堆,也是JVM很重要的内容,宋红康老师讲解的非常好,很清晰。明天继续学习JVM中的方法区(也不叫方法区了,被元空间取代了)。剑指Offer 7 斐波那契数列大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n<=39//大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n<=39public class
2020-07-24 08:27:58
324
原创 JVM的类加载器、双亲委派机制、程序计数器和虚拟机栈
参考了尚硅谷韩顺平老师的JVM视频,将的很棒,也很详细。今天学习了类加载的过程,一些类加载器,双亲委派机制,运行时数据区中的程序计数器(PC寄存器)和虚拟机栈。今天学到了很多,明天继续加油吧!!!剑指offer 6:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0public
2020-07-22 22:11:12
162
原创 mysql 知识梳理和开始jvm的学习
每天一道 剑指offer5.用两个栈实现一个队列栈:先进后出队列:先进先出队列push操作:将元素放入stack1中。队列pop操作:如果stack2中没有元素,将stack1中的元素放入stack2中,再stack2.pop();如果stack2中有元素,直接stack2.pop();//用两个栈实现队列public class Offer5 { Stack<Integer> stack1 = new Stack<>(); Stack<Inte
2020-07-21 22:03:51
232
原创 剑指offer 重建二叉树
/** * 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 * 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 */public class Offer4 { public static void main(String[] args) { int[] pre = {1,2,4,7,3,5,6,8}; int[] i.
2020-07-20 21:59:29
99
原创 剑指offer2,3
剑指offer 2替换空格实现一个函数,将一个字符串中的每一个空格替换成“%20”;例,当字符串为“We Are Happy”,则经过替换之后的字符串为“We%20Are%20Happy”//将字符串的每个空格替换成 %20 例:将“We Are Happy”替换成“We%20Are%20Happy”public class Offer2 { public static void main(String[] args) { String stringBuffer = repl
2020-07-19 17:30:35
88
原创 复习java基础(四)
每天学习一道《剑指offer》的题目剑指offer第一道题:在一个二维数组中(每一个数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,请完成一个函数,输入这样的一个二维数组和一个证书,判断数组中是否有该整数。//上下左右有序的二维数组中查找数public class Offer1 { public static void main(String[] args) { int[][] a = {{1,2,3,4},{2,6,8,9},{3,
2020-07-18 21:33:53
216
原创 复习java知识(三)
上午学习了一些关于算法之类的题目,突然想到io下面有个File类就有穿插着复习了一下,复习了昨天的内容。下午继续学习基础知识。知识点好多,感觉头发保不住了。明天继续。关于java.io.File的方法import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;public class CatalogTest { public static void main(String[] args) {
2020-07-17 20:53:06
200
原创 复习java基础知识(二)
上午复习了,数据结构中的树,树的三种遍历方式,树的最大值,最小值的查找,层序遍历等等。还有复习了二叉树,二叉查找树,平衡二叉树,红黑树,B树,B+树。二叉树的相关方法public class BinTreeDemo { //二叉树中Node的个数 private int N; //根节点 private Node root; //获取Node的个数 public int size(){ return this.N; }
2020-07-16 22:14:05
115
原创 复习java基础知识(一)
今天上午自己按照网上的教程做了一个个人博客,还是很开心的,终于有自己的博客了,所以复习java基础的就只有今天下午了。下午主要是看了很多概念性的东西,结合牛客网上的知识点,自己又整理了一下,把一些问题的答案摘抄下来(自我感觉回答好的一些答案)。以方便后来整理,学习。1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?java虚拟机(jvm)是可以执行java字节码的虚拟进程。 准确的来说,java的跨平台指的是java源文件经过javac编译器编译成的二进制.class字节码的跨平
2020-07-15 20:57:24
215
原创 复习String类型常用的api
String的常用apipublic class StringTest { public static void main(String[] args) { String s1 = new String("zhangsan"); String s2= new String("zhangsan"); /** * 问:一共创建了几个对象? * * 答:三个,方法区字符串常量池中有一个,堆内存中有两个S
2020-07-14 16:35:57
212
原创 复习希尔排序,归并排序和快速排序
希尔排序希尔排序是插入排序的优化,添加了增长量的概念,将相距某个“增量”的记录组成一个子序列,在子序列中进行插入排序,然后减小增量,重复上述操作,继续进行排序,直至增量为一。对于增量,我们按照每次排序为数组的长度除以三减一(即 h=a.length/3-1 )每次的除以2,知道h为1.分析1.选定一个增量为h,以h为依据进行分组2.每组进行插入排序3.减小h的值,重复操作代码实现public class ShellTest1 { public static void main(
2020-07-14 15:02:59
814
原创 复习冒泡排序,选择排序和插入排序
冒泡排序冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果左边大于右边则交换,看起来像冒泡一样分析如下图:将3与44比较,3比44小,则不用交换,再用44与38比较,44大于38,交换,以此类推。代码的实现public class Bubble { /* 对数组a中的元素进行排序 */ public static void sort(int[] a){ //多少个元素参与冒泡 for (int i = a.length-1 ;
2020-07-14 09:51:17
167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人