
java
SSM,SpringBoot,SpringDataJPA的一些常用知识
(xsj)
模拟只会猜题意
贪心只能过样例
DP一般看规律
数论只会gcd
计算几何瞎暴力
图论只会匈牙利
数据结构没学过
字符串只能干输入
展开
-
eclipse 自动提示
自动提示设置Window—>Preferences---->Java—>Editor—>Content Assist设置成.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ原创 2021-05-17 17:32:20 · 105 阅读 · 0 评论 -
14.线程的生命周期
图解6种状态new , runnable , blocked , waiting , timed waiting , terminatedblocked,waiting,timed waiting 我们都称为阻塞状态当进入synchronized同步代码块或同步方法中,且没有获取到锁,线程就进入blocked状态,知道锁被释放,重新进入runnable状态当线程调用wait()或者join时,线程都会进入到waiting状态,当调用notify或notifyAll时,或者join的线程原创 2021-04-19 15:12:24 · 82 阅读 · 0 评论 -
13.创建线程的方式
方式我们常说的方式有三种:继承Thread ,实现Runable接口,实现Callable接口(可以获取线程执行之后的返回值)但实际上后两种,更准备的理解是创建了一个可执行的任务,采用多线程的方式执行,还需要通过创建Thread对象来执行,比如 new Thread(new Runnable(){}).start();这样的方式来执行。在实际开发中,我们通常采用线程池的方式来完成Thread的创建,更好管理线程资源。案例分析正确启动线程public class Main { pub原创 2021-04-17 17:08:55 · 98 阅读 · 0 评论 -
12. java异常体系
图解对比Error:JVM的错误,程序无法处理的系统错误,编译器不做检查,如系统奔溃,虚拟机错误,栈堆内存不足Exception:程序可以处理的异常,捕获后可以恢复RuntimeException : 逻辑异常,代码写的不严谨,数组越界,空指针异常#RuntimeException :用户参与,非法输入,读取常见类型RuntimeException常见类型NullPointerException-----空指针引用异常ClassCastException--------类型强制原创 2021-04-17 15:04:04 · 95 阅读 · 0 评论 -
11. HashTable & HashMap & ConcurrentHashMap
HashTableHashMapConcurrentHashMapmap.put(key,value) : key 通过hash计算得到所在段,然后再进行hash计算得到段中的位置 ,如果是有多个put操作,只有在同一段中才会上锁,不在同一段中就不用上锁总结如果不是多个线程访问同一个资源,那么就优先选择HashMap ;当HashMap是全局变量,多个线程共享访问就选择ConcurrentHashMap...原创 2021-04-14 20:27:23 · 129 阅读 · 0 评论 -
10. Set
1.HashSet底层储蓄原理HashSet底层采用的是HashMap来实现存储,其值作为HashMap的key HashSet<Character> hashSet = new HashSet<Character>(); hashSet.add('x'); //add底层源码 public boolean add(E e) { return map.put(e, PRESENT)==null; } //put底层源码 pub原创 2021-04-14 19:31:36 · 124 阅读 · 0 评论 -
9. ArrayList 与 LinkedList
1.底层数据结构的差异ArrayList ,数组,连续的一块内存空间 ,查找快(有前提),因为是连续的内存空间,方便寻址,但插入删除慢,因为需要发生数据的迁移LinkedList,双向链表,不是连续的内存空间,查找慢,因为需要通过指针一个个寻找,但删除,插入快(中间位置),因为只要改变前后节点的指针指向即可前提:假设 ArrayList:a c b d , LinkedList : a c b d ;查找下标为3的元素? ArrayList连续的内存空间,可计算偏移量,直接访问,原创 2021-04-08 09:33:08 · 142 阅读 · 0 评论 -
8.方法的重写与重载
1.重载重载 :发生在在一个类里边,方法名相同,参数列表不同 (易错点:跟返回类型没有关系)public double add(int a,int b)public int add(int a,int b)这里个方法不构成重载2.重写重写 :发生在父类与子类之间,方法名相同 ,参数列表相同...原创 2021-04-08 08:35:27 · 118 阅读 · 0 评论 -
7.自动装箱和拆箱
1.前置知识比较这里返回的结果肯定是false,当我们比较两个对象的时候,a,b两个对象都会通过new来开辟一个新的堆内存,==比较的是指针指向的位置,指针指向不同的堆内存,所以结果是false2. 自动装箱与拆箱我们发现,这两个返回的结果都是true,为什么呢,不是说对象比较的是指针吗,指向的地址应该不同才对在JDK1.5之后,有了自动装箱机制,当我们给a赋值时,其实执行的了自动装箱操作,就是Integer.valueOf(126),点开这个方法的源码查看,发现如果赋值的值在low-原创 2021-04-07 22:27:16 · 95 阅读 · 0 评论 -
6. String StringBuffer StringBuilder 区别
StringString 是 final 类型的,每次声明都是不可变的对象,所以每次操纵都会产生新的String对象,然后将指针指向新的对象StringBuffer 和 StringBuilder 都是在原有的对象上进行操作,所以,如果经常需要改变字符串的内容,建议使用这两者StringBuffer VS StringBuilder1.StringBuffer 是线程安全的,StringBuilder 是线程不安全的注:我们所说的线程安全就是在多线程环境下,对这个对象的访问不需要加入原创 2021-03-31 23:50:41 · 409 阅读 · 0 评论 -
5. == 和 equals 的区别
== 和 equals== 比较基本的数据类型,比较的是值 ; 比较引用类型 : 比较引用指向的值(地址)String s1 = new String("xsj");String s2 = new String("xsj");//指针指向不同的堆内存 falseSystem.out.println(s1 == s2);String s3 = "xsj";String s4 = "xsj";//指针指向常量池 trueSystem.out.println(s3 == s4);/原创 2021-03-30 21:26:31 · 173 阅读 · 0 评论 -
4. final
定义修饰类:表示类不可变,不可继承,比如String,不可变性修饰方法: 表示改方法不可重写,比如模板方法,可以固定我们的算法,参数 可以改变,但其过程不可改变修饰变量:这个变量就是常量注意修饰的是基本数据类型,这个值本身不能修改final int a=5;a=7; //修饰常量不能改变其值(会报错)System.out.println(a);修饰的是引用类型,引用的指向不能修改,但是内容可以改变import java.util.Obje原创 2021-03-30 21:26:20 · 69 阅读 · 0 评论 -
3.JVM内存分配
JVM中的内存分配== 和 equalsfinal修饰类:表示类不可变,不可继承,比如String,不可变性修饰方法: 表示改方法不可重写,比如模板方法,可以固定我们的算法修饰变量:这个变量就是常量修饰的是基本数据类型,这个值本身不能修改修饰的是引用类型,引用的指向不能修改,但是内容可以改变...原创 2021-03-30 21:00:10 · 77 阅读 · 0 评论 -
2. JDK & JRE & JVM
JDK(Java Develpment Kit)是java开发工具包,是Sun公司针对java开发人员的产品,jdk中包含jre,在jdk的安装目录下有一个jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里面就是jvmJDK 是整个java的核心,包括了JRE,一堆java工具(javac编译java源文件的编译器) 和 java 基础的类库在目录下包含 6 个文件夹 ,1 个 src 类库源码压缩包 ,其他几个声明文件 ,其中在运行时真正起作用的是 bin ,i原创 2021-03-26 09:38:28 · 179 阅读 · 1 评论 -
1. 面向过程 VS 面向对象
两者区别面向过程面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了比如下五子棋:面向过程的设计思路是首先分析解决这个问题的步骤 : (1)开始游戏(2)黑子先走(3)绘制画面(4)判断输赢(5)轮到白子(6)绘制画面(7)判断输赢(8)返回步骤(2) (9)输出最后结果。下五子棋{ 开始游戏(); 黑子先走(); 绘制画面(); 判断输赢(); 轮到白子(); 绘制画面(); 判断输赢(); 返回到原创 2021-03-25 09:05:43 · 114 阅读 · 0 评论 -
项目搭建之SpringBoot—Mybatis—SpringMVC
1.新建项目点击File---->new---->Porject 新建项目(选择Spring Initializr 或者是Maven都可以,只是Spring Initializr会帮你自动导入一些坐标依赖)给你的项目的命名,选择jdk版本(最好选择1.8)你可以进行相应的勾选,让idea帮你自动导入一些依赖坐标,也可以不勾选,之后手动导入选择项目的路径和名字2. 添加依赖等待idea将项目构建完成后(可能会耗时较长),就可以导入相应的依赖坐标2.1添加Spring B原创 2020-10-22 23:44:28 · 300 阅读 · 2 评论