Java基础
整理java基础知识
袁奎
好记性不如烂笔头,将好生活记录下来。
展开
-
搭建本地https://start.spring.io服务。
1 下载服务源码。https://github.com/spring-io/initializr2 导入到本地并使用idea打开启动服务。3 maven 编译 root 项目4 启动5 测试原创 2021-01-06 14:08:31 · 779 阅读 · 1 评论 -
delete和truncate命令区别
delete 和Truncate都不会删除表结构.drop会.delete 不会清楚自增计数器 truncate 会重置自增计数器.truncate 不会影响事务delete 删除的问题.innodb 自增会从1开始 . 断电即失效.mylsam 自增不会改变 存在文件中序列化了,不会丢失....原创 2020-12-03 17:22:56 · 150 阅读 · 0 评论 -
集合为什么要有迭代器.
集合为什么要有迭代器.首先我们知道 单列集合collection可以使用for循环去遍历,那么为什么还需要迭代器呢?它相比于for循环遍历的优点是什么呢?我们可以想象一下.当我们遍历 list集合时,使用for循环需要通过 list.get(i) 索引去得到对象.这样的问题及时无法遍历set 集合.遍历set 集合可以通过for foreach遍历 但是这样代码复用性太差了.耦合性很高.那么如何去避免这样的问题呢?使用迭代器 iterator.我们发现 单列集合接口 实现了 iter原创 2020-12-03 10:59:42 · 1434 阅读 · 1 评论 -
tcp为什么要三次握手,四次挥手
1.OSI七层参考模型2. 连接是什么 ,怎么建立的.首先声明这种连接不是物理上的,并非点对点.当我们发送http数据请求的时候,由应用层请求发送数据,再到传输控制层建立信任链接.那么怎么建立信任链接呢?传输控制层分为Tcp和udp协议.什么是tcp协议他是面向连接的可靠的传输协议tcp为什么要三次握手第一次握手 客户端通过发送syn 建立连接的一个包 这个包不含我们要传输的数据的第二次握手 服务端收到后会发送 syn+ack 包返回给 客户端 .第三次 客户端根据返回的包原创 2020-11-29 22:32:04 · 119 阅读 · 0 评论 -
强软弱虚引用.
强软弱虚引用.强引用:他是我们最常见的引用object o=new Object();这个就是强引用.当我们修改他为null时他才可能被回收.o=null;因为他不存在指向了.软引用:垃圾回收器,内存不够的时候回收.使用软引用需要导包.软引用我们需要在泛型中填入我们需要引用的对象.为什么要使用软引用:因为他特别适合当缓存.当超出堆内存的时候,他就会被gc回收.弱引用:垃圾回收器看到就会回收弱引用是为了解决某些地方内存泄露的问题.主要是应用在ThreadLocal里.虚引用Phanto原创 2020-10-19 22:33:45 · 125 阅读 · 0 评论 -
复习多线程基础
1.线程和进程的区别关系首先要了解进程和线程,就要先了解什么是程序,程序就是指令集和数据的有序集合,其本身并没有运行的含义,是一个静态资源.进程:进程是程序执行一次的过程,他是一个动态概念,是系统分配资源的一个单位.线程 :通常一个进程中可以包含多个线程,一个进程至少含一个线程,线程是cpu调度和执行的单位…其实真正的多线程指的是多核cpu,如果模拟出来的多线程,即在单核服务器下,同一个时间点,只能执行一行代码,只不过cpu切换速度很快.造成执行多线程的错觉.创建线程有三种方式第一种:继承Th原创 2020-10-09 16:10:56 · 81 阅读 · 0 评论 -
Class类反射详解
首先我们要知道什么是静态语言和动态语言静态语言是一种在运行时可以改变其结构的语言例如新的函数及其代码都可以被引进比如javascript,php等静态语言如java,c++,cjava不是动态语言但可以称之为准动态语言,即java有一定的动态性,我们可以通过反射机制获得类似动态语言的特性,Java的动态性让编程变得更加灵活Java.ReflectionReflection(反射)被视为java动态语言的关键反射机制允许在执行期间通过Reflection Api获得任何内部类信息并可以操作任意原创 2020-10-03 13:24:33 · 1214 阅读 · 0 评论 -
java注解的使用复习
面试复习注解原创 2020-10-20 13:27:19 · 64 阅读 · 0 评论 -
Exception与Error之间的区别?
由上图中他们都继承了Throwable接口.区别:Error是系统中的错误,程序员是不可以改变和处理的.实在编译时候出现的错误只能通过修改程序才能修正.一般指的是与虚拟机相关的问题.比如oom.Exception他可以被捕获并处理.应当尽量捕获,尽可能使程序恢复运行.它又分为两类:编译时异常:需要trycatch.runtime异常:对于程序不可恢复的都用runtime异常.常见的RuntimeException异常:illegalArgumentException:此异常表明向方法传递了.原创 2020-11-13 10:26:09 · 284 阅读 · 0 评论 -
Java各种锁的含义以及使用场景
共享锁(读锁)如果事务对数据A添加共享锁后,其他事务只能对A添加共享锁不可以添加排它锁,他可以被多线程共同读取,但无法区修改添加删除数据,只可以被读。排它锁(写锁)排他锁又叫做写锁,独占锁,当事务T对数据A添加排它锁后,该事物只允许读取A和修改,其他的事务都不可以在对数据A添加锁,直到事务提交完成后。他可以保证其他事务不能读取该数据和写数据。互斥锁其实概念和排他锁差不多,这里可以参考互斥锁和读写锁的区别,互斥锁只允许一个线程访问近来,过程中其他线程必须等待。悲观锁悲观锁顾名思义,就是很悲观,当原创 2020-11-05 22:23:45 · 1026 阅读 · 0 评论