- 博客(33)
- 收藏
- 关注
原创 Cookie、Session区别
Cookie、Session区别 1.安全性:Cookie存客户端,Session存服务器端 2.存取值的类型不同:Cookie只存字符串数据(Cookie类的有参构造器就是两个String),Session可以存任意数据类型(value值是Object类型) 3.有效期不同: Cookie可设置为长时间保持,Session失效时间较短,客户端关闭、Session超时都会失效 4.存储大小不同: Cookie不能超过4K,Session可存储数据远高于Cookie,但是当访问量过多,会占用过多的..
2021-04-06 23:50:01
161
原创 代码块
代码块 1.静态代码块 内部可以打印日志 随着类的加载执行,只执行一次(加载的时候如何知道该类会被加载,new类,反射...) 可以定义多个静态代码块,按声明的先后顺序执行 静态代码块优于非静态代码块执行 只能调用静态属性、方法 2.非静态代码块 内部可以打印日志 随着对象的创建执行,每创建一个对象就执行一次代码块 可以定义多个非静态代码块,按声明的先后顺序执行 可以调用静态、非静态的属性、方法 ...
2021-04-06 09:10:48
185
原创 instanceof、isInstance
instanceof obj.instanceof(class) 也就是说这个对象是不是这种类型 一个对象是本身类的一个对象 一个对象是本身类父类(父类的父类)和接口(接口的接口)的一个对象 所有对象都是Object 凡是null有关的都是false null.instanceof(class) isInstance class.inInstance(obj) 这个对象能不能被转化为这个类 一个对象是本身类的一个对象 一个对象能被转化为本身类所继承类(父类的父类等)和实现的接口...
2021-04-06 09:10:38
346
1
原创 Java运算符
Java运算符 逻辑运算符(&& || !) 算数运算符(+ - * / +=) 位运算符(^ | &) 其他运算符(三元运算符) 位运算符 参考 按位与:&,两个真即为真,1&1=1,1&0=0,0&1=0,0&0=0 按位或:|,一个真即为真,1|0=1,1|1=1,0|0=0,0|1=1 异或:^,不同为真,1^0=1,1^1=0,0^0=0,0^1=1 左移运算符:<<,转为二...
2021-04-06 09:10:25
118
原创 this关键字
this关键字 this:当前对象 this.属性名称:当前类中的成员变量(先找本类,找不到再找父类) this():当前类的构造方法,放首行 this.方法名:当前类的成员方法(先找本类,找不到再找父类) /** * this关键字: * 1.调用本类构造方法 * 2.调用成员变量 */ public class Person { public static void main(String[] args) { Test1 test = new Te..
2021-04-06 09:10:11
125
原创 clone()
实现Cloneable接口,重写Object类的clone()方法 对象clone:参考 集合clone:参考 public class TestClone { /** * 1.现象一:Student类未实现Cloneable接口,会报错 * 原因:在main函数调用clone方法时,会直接调用Object类的方法,直接抛出throws CloneNotSupportedException异常 * 2.现象二:那为啥实现了Cloneable接口.
2021-04-05 09:59:00
389
1
原创 上界通配符、下界通配符
上界通配符、下界通配符 参考 1.上界通配符:<? extends T> add():不可以加入任何元素(除了null因为null可以为任何类型) get():返回的值的类型默认是T 2.下界通配符:<? super T> add():只能添加类型为T和其子类类型的元素 get():返回的值的类型默认是Object 3.举例: List<? extends C> list1; // ...
2021-04-05 09:56:01
1025
原创 创建对象的五种方式
创建对象的五种方式 public static void main(String[] args) throws Exception{ /** * 1.new 对象() */ User user = new User(); /** * 2..newInstance() * 需要保证该类有无参构造器 * 若里面没有任何构造器,编译器会默认加一个无参构造器,正确 * 若只有有参构造器则,则不添.
2021-04-05 09:47:29
162
原创 数据类型
数据类型 1.八种基本数据类型没有手动赋值,会被设置默认值,只有在是成员变量的时候 byte、short、int、long = 0 float、double = 0.0 char = ' '(空格字符) boolean = flase 2.包装类Interger、String、Byte、Short、Char、Long = null 基本数据类型转换: 小 -> 大 直接转 int a = 1; long b = a; // long b ...
2021-04-05 09:47:10
160
原创 Object类
Object类 1.Object类是所有Java类的根父类 2.如果类的声明中未使用extends关键字指明其父类,则默认父类为Java.lang.Object类 3.Object类 属性:无 方法:equals()、toString()、getClass()、hashcode()、clone()、finalize()、wait()、notify()、notifyAll() 4.万物皆对象,除8种数据类型以外都是Object的子类 wait()、notify()...
2021-04-05 09:46:44
299
2
原创 反射
反射 1.定义:可以在程序运行时,获得任意一个类的所有信息,这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制 2.获取Class实例的四种方法 ①:.class ②:对象引用.getClass() ③:Class.forName("类路径") ④:加载器加载 3.哪些类型可以有Class对象:class(外部类、四种内部类)、interface、数组、枚举、引用数据类型 获取Class实例的四种方法 /** * ①:.c...
2021-04-05 09:46:23
242
1
原创 static关键字
static关键字 参考 1.修饰成员方法:称作静态方法,静态方法不依赖于任何对象就可以进行访问 所以在静态方法中不能访问该类的非静态成员变量和非静态成员方法,同理不能写this.属性名、this.方法名;但在非静态成员方法中是可以访问静态成员方法、变量的 2.修饰成员变量:静态变量 静态变量和非静态变量的区别是: 静态变量被所有对象共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。 而非静态变量是对象...
2021-04-05 09:45:47
161
原创 内部类
内部类 1.静态内部类:定义在类内部的静态类 public static class A{} 静态内部类可以访问外部类所有的静态变量、方法,即使是private 静态内部类和一般类一致,可以定义静态变量、方法、构造方法 用外部类.静态内部类访问 2.成员内部类:定义在类内部的非静态类,不可以定义静态方法和变量(final修饰的除外) 3.局部内部类:定义在方法中的类,不能加权限修饰符,只能写class A{} 4.匿名内部类:new一个类 如...
2021-04-05 09:45:06
121
原创 抽象类、接口
接口 接口是对行为的抽象,不能被new,不能实例化 可以定义常量,常量都是公共的,静态的,不可变的,在声明常量的时候必须赋值,final修饰常量时必须赋值 ①:public static final int a = 1②:int a = 1 可以定义方法,方法都是公共的,抽象的 ①:public abstract 返回值类型 方法名(参数) ②:返回值类型 方法名(参数) 接口多继承接口,用extends关键字,不用实现其继承的抽象方法 接口被非抽象类实现,用implemen...
2021-04-05 09:44:14
249
2
原创 Java三大特性
继承、封装、多态 继承 1.多个类具有相同的属性、方法,可以把这些属性放在一个类里面,然后这些类去继承这个类,这个类称为父类 2.子类可以调用父类的方法、属性 3.子类可以写自己的属性和方法,可以对父类进行扩展 4.继承包括:单继承、多重继承、不同类继承一个父类 封装 1.把一个对象的属性私有化,通过公共的接口访问,比如private String name,通过公共的set、get方法访问该属性 多态 1.重写,多个子类重写父类的方法 2.重载,同各类,方法名必须相同,参数类型、参数个数、顺序..
2021-04-04 13:57:12
148
2
原创 其他概念
服务间通信 HTTP调用:基于HTTP协议,在应用层,效率较低 RPC:远程过程调用,基于TCP/IP协议,TCP协议在传输层,效率高 消息中间件:相较于RPC,两服务之间多一个中间件的组件 TCP/IP协议 "我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容。如果想要使传输的数据有意义,则必须使用到应用层协议." "WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。" T..
2021-04-04 13:49:19
171
原创 Token
token流程 为什么要使用token 因为session+cookies是基于web的。但是针对api接口,可能会考虑到移动端,app是没有cookies和session的 Token放Cookie里验证登录 @GetMapping("/setToken") public void setToken(HttpServletRequest request, HttpServletResponse response){ St...
2021-04-04 13:40:32
238
原创 Cookie、Session区别
Cookie、Session区别 安全性:Cookie存客户端,Session存服务器端 存取值的类型不同:Cookie只存字符串数据(Cookie类的有参构造器就是两个String),Session可以存任意数据类型(value值是Object类型) 有效期不同: Cookie可设置为长时间保持,Session失效时间较短,客户端关闭(实际上存于服务端的Session设置的失效时间未到的话也没有真正的失效)、Session超时都会失效 存储大小不同: Cookie不能超过4K,Sessio.
2021-04-04 10:53:59
134
原创 Session
Session概念 Session是个接口 Session意思是一种技术,用来维护客户端和服务端的关联 每个客户端都有自己的一个Session会话 经常用来保存用户登录信息 存在服务器内存中 我的理解:其实浏览器再第一次访问服务器(即不带任何Cookie)的时候,服务器就会通过Request.getSession()创建一个Session,同时创建一个Cookie,Cookie的key是 JSESSIONID,value是刚创建出来的SessionId,然后添加到头部返回给客户端,客户端接收.
2021-04-04 10:47:53
291
原创 Cookie
Cookie概念 Cookie是个类 客户端有了Cookie,每次请求都会发给服务器 每个Cookie大小不超过4kb 存在客户端 Cookie的创建 /** * 1.新建一个Cookie对象 * 2.HttpServletResponse.addCookie(); */ @GetMapping("/getCookie") public void getCookie(HttpServletResponse response) throws IOException {...
2021-04-04 10:39:56
123
原创 跨域问题
概念 参考 跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址, b页面为域名地址,所进行的访问行动都是跨域的
2021-04-04 10:30:27
132
原创 简要说明
所有内容都是本人整理所看过的资料独立编写的,有自己的见解,也有其他大佬资料里对我有帮助的截图。 前期以概念为主,我觉得概念是个很重要的东西,很多东西不是因为难,而是因为你根本不知道有这个东西,理清楚了概念,你才会在使用的时候有自己的思考(个人愚见) 所以我刚开始整理在有道云笔记上的都是概念性的东西,后期的话会渐渐加多代码。 ...
2021-04-04 10:27:54
123
原创 TCP和UDP
TCP和UDP的区别 1.TCP协议: 必须先建立TCP连接,形成数据传输通道,传输的是字节流 传输前,三次握手 TCP协议进行通信的两个应用程序是:客户端、服务端 可进行大数据量的传输 传输完毕,四次挥手,需释放连接,效率低 2.UDP协议: 不需要建立连接,传输的是数据包 每个数据包大小限制64k以内 只管发,不管对方是否接收到,不可靠 发送结束无需释放资源,效率高 TCP 三次握手、四次挥手 ACK、SY...
2021-04-04 10:20:41
116
原创 协议模型
五层协议模型 应用层:Http、FTP、Telnet、DNS... 传输层:TCP、UDP... 网络层:IP、ICMP、ARP... 链路层:Link 物理层
2021-04-04 10:12:18
196
原创 JVM排查工具
本片摘录于收藏的微信公众号文章,排版会有些乱 目录 JDK 监控和故障处理工具总结 JDK 命令行工具 jps:查看所有 Java 进程 jstat: 监视虚拟机各种运行状态信息 jinfo: 实时地查看和调整虚拟机各项参数 jmap:生成堆转储快照 jhat: 分析 heapdump 文件 jstack:生成虚拟机当前时刻的线程快照 JDK 可视化分析工具 JConsole:Java 监视与管理控制台 Visual VM:多合一故障处理工具 JDK 命令行工具 这些命令...
2021-04-03 22:44:35
507
原创 JVM参数
开启GC收集细节 -XX:+PrintGCDetails // 开启 -XX:-PrintGCDetails // 关闭 使用串行垃圾回收器 -XX:+UseSerialGC // 使用 初始化堆大小 -Xms1024m 等价于 -XX:InitialHeapSize=1024m 最大堆大小 -Xmx1024m 等价于 -XX:MaxHeapSize=1024m 设置垃圾最大年龄 -XX:PretenureSizeThreshold=15 报oom时自...
2021-04-03 22:39:05
200
原创 垃圾收集算法、垃圾收集器
垃圾收集算法 为什么要有GC 自动监测对象是否超过作用域从而达到自动回收内存的目的 Java垃圾回收机制 Jvm中,有一个垃圾回收线程,它的优先级很低的线程,正常情况下它是不会触发执行的,只有当虚拟机空闲或者内存不足的时候,才会回收没有任何引用的对象 垃圾收集器可以马上回收内存吗? 通过system.gc()提醒虚拟机:希望进行一次垃圾回收,但是它不能保证垃圾回收一定会进行。 GC算法 1.标记-清除算法:标记出所有需要回收的对象,在标记完成后统一回收掉所有标记的对象 2....
2021-04-03 22:08:06
159
原创 JVM内存模型
JVM各个区域 堆: 成员变量(成员变量作为对象的属性,当然是放在堆里了。对象在堆里,对象中的内容就是各种字段) 各种对象 字符串常量池(⽤于存放编译期⽣成的各种字⾯量和符号引⽤,这个以前在运行时常量池内) 方法区: 加载的类信息(Class实例)、常量、静态变量 运行时常量池:常量池是方法区中的一部分,主要用来存放常量和类中的符号引用等信息 程序计数器: 记录虚拟机字节码指令的地址,为了线程切换后恢复到正确的执行位置(唯一一个没有OOM的区域,生命周期随着线程的创建而创建,死亡而死亡) .
2021-04-03 21:53:03
124
原创 类加载器
JVM类加载器种类 根类加载器:加载Java的核心类,无法直接获取 扩展类加载器:加载JRE的扩展目录 应用程序类加载器:加载.class文件进入方法区 自定义类加载器 类加载器加载Class的8个步骤 检测此Class是否载入过,即在缓冲区中是否有此Class,如果有直接进入第8步,否则进入第2步。 如果没有父类加载器,则要么Parent是根类加载器,要么本身就是根类加载器,则跳到第4步,如果父类加载器存在,则进入第3步。 请求使用父类加载器去载入目标类,如果载入成功则跳至第8..
2021-04-03 21:32:31
149
原创 JVM起始篇
目录 1.JVM虚拟机 2.JVM类加载 1.JVM虚拟机 JVM运行于操作系统,是一个可以执行Java字节码的进程,进程是操作系统的执行单位 JVM有三个子系统:类加载器、执行引擎、垃圾收集器 https://blog.youkuaiyun.com/zhangjg_blog/article/details/20380971?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute...
2021-04-03 21:07:20
137
原创 序章
序章 序章会天天更,就当记录一下每天的琐事~ 1.今天是2021.04.02,今年25岁,刚入职新公司两个礼拜,洗漱的时候觉得自己应该写点博客,一是为了整理总结以前学的东西,二是圆一个自己的博客梦,三是为了下一份工作提供一些加分。另外有一句最能支持我今天这个行为的一句话---"既然是对自己未来有帮助的事情,那么为什么不努力的去做呢"。 ...
2021-04-02 22:44:53
225
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅