自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 TCP握手挥手

三次握手是为了建立可靠的数据传输通道,四次挥手是为了保证等数据传输完再关闭连接,保证双方都达到关闭连接的条件才能断开。1、四次挥手2、三次握手。

2022-10-12 18:58:12 618 1

原创 单例模式(Java)

(2)饿汉式(在类的初始化时,已经自行实例化)

2022-10-07 15:59:26 158

原创 Java秋招面经(二)

IOC容器基本实现,是Spring内部的使用接口,不提供给开发人员使用。加载配置文件的时候不会创建对象,在获取的时候才会创建。:BeanFactory的子接口,提供更多更强大的功能,一般由开发人员使用,加载配置文件的时候,就会把xml文件中的对象创建。Spring IOC两种实现方式:BeanFactory和ApplicationContext。ApplicationContext接口有实现类。xml解析、工厂模式、反射。

2022-10-03 22:35:32 248

原创 Redis

使用的是jdkSerializationRedisSerializer序列化对象,可以用来存储对象,但是要实现Serializable接口,以二进制数组存储,没有可读性。使用的是StringRedisSerializer序列化string,主要用来存储字符串,StringRedisSerializer的泛型特指String。autowrite以类型注入bean,resource以名称注入bean。

2022-09-26 17:03:22 220

原创 Java线程池

适用于执行负载重,cpu使用频率高的任务;这个主要是为了防止太多线程进行大量的线程频繁切换,得不偿失;适用于执行大量(并发)短期异步的任务;注意,任务量的负载要轻;比如同时给很多人发送从磁盘读取的消息通知。最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目。一般是周期性的任务,不过这个可以使用其他的替代;CPU密集型(计算密集型):线程数=cpu核数 + 1。I/O密集型:线程池=cpu核数 * 2 + 1。因为创建和销毁线程花销很大,所以需要使用线程池。

2022-09-25 19:28:25 97

原创 volidate关键字

(如果对Java内存模型比较了解的话会知道,每个线程都会被分配一个线程栈,如果对象是多线程间的共享资源时,当线程访问某一个对象时候值的时候,首先通过对象的引用找到对应在堆内存的变量的值,然后把堆内存变量的值load到线程栈中,建立一个变量副本,之后线程操作的都是副本变量,当修改完副本变量之后,会写回值到主内存。但由于线程栈是线程间相互隔离的,即多线程间不可见,如果有其他线程修改了这个变量,但还未写回主内存或者更新主内存后,其他线程读取的仍是自己线程栈的副本时,就会出现问题。1、保证变量在多线程之间可见性。

2022-09-25 18:53:09 587

原创 进程和线程区别

2、进程拥有一个完整的资源平台,线程只独享必不可少的资源,如寄存器、栈。3、线程同样具有就绪、阻塞、执行三个状态,同样具备状态之间的转换关系。进程通信:管道、有名管道、信号量、消息队列、信号、共享内存、套接字。线程优点:一个进程可以同时存在多个线程,各个线程之间可以并发执行。线程缺点:一个进程中的一个线程崩溃会导致同进程的所有线程崩溃。1、进程是资源分配的最小单位,线程是cpu调度的最小单位。4、线程能减少并发执行的时间和空间开销。线程通信:锁机制、信号量机制、信号机制。

2022-09-24 17:30:13 179

原创 nacos集群(nginx)

3、修改nacos下的application.properties中的nacos端口号、启动。2、然后修改application.properties文件,添加数据库配置。1、在nacos\conf目录下找到cluster.conf,添加集群节点。5、微服务application.yml配置。

2022-09-22 15:18:56 573 2

原创 Java秋招面经(一)

所以我们(column_1)、(column_1,column_2)、(column_1,column_2,column_3)这三种查询条件是可以使用到索引的。而红黑树在插入新数据后可能需要通过左旋,右旋、变色这些操作来保持平衡,引入红黑树就是为了查找数据快,解决链表查询深度的问题,我们知道红黑树属于平衡二叉树,但是为了保持“平衡”是需要付出代价的,但是该代价所损耗的资源要比遍历线性链表要少,所以当长度大于8的时候,会使用红黑树,如果链表长度很短的话,根本不需要引入红黑树,引入反而会慢。...

2022-08-30 11:01:31 640

原创 CountDownLatch的使用

CountDownLatch可以使一个获多个线程等待其他线程各自执行完毕后再执行。CountDownLatch 定义了一个计数器,和一个阻塞队列, 当计数器的值递减为0之前,阻塞队列里面的线程处于挂起状态,当计数器递减到0时会唤醒阻塞队列所有线程,这里的计数器是一个标志,可以表示一个任务一个线程,也可以表示一个倒计时器,CountDownLatch可以解决那些一个或者多个线程在执行之前必须依赖于某些必要的前提业务先执行的场景。例子:...

2022-08-07 17:08:59 674

原创 Java工程师面试宝典(四)

索引有普通索引、唯一索引、单列索引、组合索引、全文索引(MySQL不支持)、空间索引。、解决索引失效不在索引列上使用计算、函数、类型转换,减少select*,使用不等于会失效,like以%开头,字符串不加单引号,使用or。、不适合加索引的字段频繁更新字段、where中未使用字段、数据较少的表、真或假等数据分布均匀的字段、参与计算的列。、面向对象面向对象是一种更优秀的程序设计方法,它的基本思想是使用类、继承、封装、消息等基本概念进行程序设计。、面向对象三大特征封装、继承、多态。................

2022-07-21 14:48:50 272

原创 Java工程师面试宝典(三)

这三个方法都是Condition接口中的方法,该接口是在Java1.5中出现的,它用来替代传统的wait+notify实现线程间的协作,它的使用依赖于Lock。即Conditon中的await()对应Object的wait(),Condition中的signal()对应Object的notify(),Condition中的signalAll()对应Object的notifyAll()。用于唤醒一个正在等待相应对象锁的线程,使其进入就绪队列,以便在当前线程释放锁后竞争锁,进而得到CPU的执行。......

2022-07-19 10:57:29 150

原创 Java工程师面试宝典(二)

所有的IO在NIO中都从一个Channel开始,数据可以从Channel读到Buffer中,也可以从Buffer写到Channel中。、Java中的IO流IO(InputOutput)用于实现对数据的输入与输出操作,Java把不同的输入/输出源抽象表诉为流(Stream)。流是从起源到接收的有序数据,有了它程序就可以采用同一方式访问不同的输入/输出源。、打开大文件打开大文件,应避免之间将文件中的数据全部读取到内存,可以采用分次读取的方式。.........

2022-07-18 16:16:24 171

原创 Java工程师面试宝典(一)

由于String天然的不可变,当一个线程”修改“了字符串的值,只会产生一个新的字符串对象,不会对其他线程的访问产生副作用,访问的都是同样的字符串数据,不需要任何同步操作。,这个obj引用变量的编译时类型是BaseClass,而运行时类型是SubClass,当运行时调用该引用变量的方法时,其方法行为总是表现出子类方法的行为特征,而不是父类方法的行为特征,这就可能出现相同类型的变量、调用同一个方法时呈现出多种不同的行为特征,这就是多态。对于父类型,可以有三种形式,即普通的类、抽象类、接口。...........

2022-07-17 11:54:48 357

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除