自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 String intern()方法

Q1:String s = new String("cyou");定义了几个对象。Q2:如何理解String.intern()方法?A1:若常量池中已经存在 “cyou”,则直接引用,也就是此时只会创建一个对象,如果常量池中不存在 “cyou”,则先创建后引用,也就是有两个。A2:当一个 String 实例调用intern()方法时,JVM 会查找常量池中是否有相同 Unicode 的字符串常量,如果有,则返回其的引用,如果没有,则在常量池中增加一个 Unicode 等于 s 的字符串并返回它的引.

2021-01-18 09:50:00 495

原创 Java中的锁总结

2020-11-06 17:50:13 106

原创 分布式session的解决方案

cookie和session的区别和联系1. 由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪用户,这样才知道购物车里面有几本书。这个Session是保存在服务端的,有一个唯一标识。在服务端保存Session的方法很多,内存、数据库、文件都有。集群的时候也

2020-10-23 18:04:27 210

原创 每日一道算法题-TwoSum

/** * 167.给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。 * 函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。 * 说明: * 返回的下标值(index1 和 index2)不是从零开始的。 * 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 * 示例: * 输入: numbers = [2, 7, 11, 15], target = 9 * 输出: [1,2] * 解释: ...

2020-10-22 11:00:58 153

原创 每日一道算法题-MoveZeros

283.给定一个数组nums,写一个函数,将数组中所有的0挪到数组的末尾,而维持其他所有非0元素的相对位置举例 nums=[0,1,0,3,12] ----> [ 1,3,12,0,0]做法1:可以创建一个临时数组来存储不等与0的数。public static int [] moveZeros(int arr[]){ int temp[]= new int[arr.length]; int j=0; for (int i = 0; ...

2020-10-21 09:11:25 160

原创 volatile和JMM那些事儿

volatilevolatile是Java虚拟机提供的轻量级的同步机制(乞丐版的synchronized)volatile 1.1保证可见性 1.2不保证原子性 1.3禁止指令重排 JMM(Java Memory Model)Java内存模型(不真实存在,是一个约定和规范)JMM关于同步的规定 1.线程解锁前,必须把共享变量的值刷新回主内存 2.线程加锁前,必须读取主内存的最新值到自己的工作内存 3.加锁解锁是同一把锁 ...

2020-09-22 17:55:06 150

原创 Mybatis工作流程超详细

MyBatis工作原理以Spring整合为例 使用Spring整合MyBatis会有一系列bean的配置,我们从MapperScannerConfigurer开始说起。 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 指定扫描的包,如果存在多个包使用(逗号,)分割 --> <property name="basePackage" value="com.test

2020-08-03 13:28:28 525

原创 SpringBean的生命周期(易懂)

SpringBean生命周期 从根据配置封装BeanDefinition中获取Bean的全限定类名,通过反射调用空参构造实例化对象。 还是通过反射注入Bean中的属性。 检查是否实现几个Aware系列的接口,如果实现了,则注入一些Spring上下文信息(BeanId,BeanFactory等等) 检查是否实现BeanPostProcessor前置接口,如果有则执行实现的代码 检查是否实现InitializingBean接口,如果有则执行实现的代码 检

2020-07-31 15:18:52 249

原创 SpringIOC加载流程

SpringIOC加载流程 IOC是在Spring启动后初始化环境和上下文对象完成后开始执行的 首先是创建BeanFactory,并将它的引用交给ApplicationContext,解析xml中配置的Bean,将他们封装成BeanDefinition对象,并放入HashMap中 BeanDefinition对象中封装了IOC初始化需要用到的所有信息,例如全限定名,是否懒加载,注入的属性,作用域等等。 准备BeanFactory对象,为他设置类加载器,以及设置一些Sp

2020-07-31 10:50:10 790

原创 JAVA设计模式面试复习

设计模式为什么要用设计模式?设计模式是编程随时间发展下来总结的经验和套路,它可以让写出来的代码复用性更好、拓展性更强、易于维护等等优点设计模式的类型创建型模式提供一种在创建对象的同时隐藏创建逻辑的方式,让程序在不同情境下可以灵活的选择创建对象的类型工厂模式、抽象工厂模式、单例模式、建造者模式等结构型模式常见的设计模式工厂模式意图:定义一个工厂接口,实现不同的创建对象方式,使用者直接使用实现类创建对象。优点: 可以屏蔽复杂的创建过程,.

2020-07-30 18:21:26 159

原创 JAVA操作系统面试题

操作系统内存地址空间物理地址空间硬件支持的地址空间,由硬件维护分配。逻辑地址空间例如进程的地址空间,指的是进程可寻址的虚拟内存组成。物理地址空间和逻辑地址空间之间建立映射是由操作系统完成的。例如:CPU需要执行一条指令,提供逻辑地址向MMU缓存中获取对应硬件地址,如果有则返回地址并向内存获取内容,如果没有就会到内存中的页表找,找到物理地址后内存通过总线传给CPU。操作系统维护内存访问的安全为了保证程序之间访问内存互不干扰保证安全,操作系统会保存每个程序允

2020-07-29 13:32:40 1883

原创 JAVA面试(全)

Java八大基本数据类型八大基本类型Byte,short,long,int,double,float,boolean,char占用大小及其长度数据类型 空间(字节B) 取值范围 byte 1 -2^7 ~ 2^7-1 short 2 -2^15~ 2^15-1 char 2 0 ~ 2^16-1 char无需符号位 int 4 -2^31 ~ 2^31-1 float 4 -2^31 ~ 2

2020-07-28 13:38:46 327

原创 JAVA计算机网络面试题

OSI七层与TCP/IP五层区别在表示上,TCP/IP的五层中,将应用层包含了OSI中的应用层、表示层和会话层。OSI(开放式系统互联)模型是一个参考标准,它具有通用性。而TCP/IP参考模型是先有的协议再建立的模型,适用于如今大部分的TCP/IP网络各层工作 应用层,直接为应用程序提供服务,常见的协议有HTTP、FTP、SMTP等。 传输层,主要是负责提供端到端的稳定传输(UDP是个例外),协议TCP、UDP。 网络层,提供对目标IP的解析,判断是.

2020-07-26 20:35:17 1563

原创 springboot WEB项目

按照图中注释按需要修改,next在下图中选择组件,会自动导入maven配置文件下载jar包。不配置后期也能再手动添加后续next过去点击确定就会创建项目了。选择Enable后pom.xml导入新的dependencyh后会自动下载jar包国际惯例写一个Hello World:注意:首先导入视图引擎,否则无法跳转到HTML页面!!!启动运行成功后,在地址栏输入http://localhost:8080/...

2020-07-25 20:05:22 198

原创 2020年JAVA基础(一)(JDK1.8)

1.JDK和JRE有什么区别?JDK:java编译和运行的环境(.编译成class文件并运行class文件),确定的说JDK包含jre.JRE:提供class文件的运行环境2.byte a = 127; byte b =1; a=a+b; a+=b; 可以成功运行吗?答案:不可以的,解释:a=a+b是错误的,我们知道java中整数默认是int,小数默认是double,因此 a=a+b;会出现不能转换为int的错误,所以我们需要进行强制转换a=(byte)(a+b). 在java中+...

2020-05-20 18:20:22 1268 2

原创 大乐透-java

今天分享一篇用java编写大乐透,红色球5个不重复,蓝色球2个不重复package iscast15;import java.util.ArrayList;import java.util.Collections;import java.util.Random;public class RanromS { public static void main(String[] a...

2019-10-21 20:07:06 1448

空空如也

空空如也

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

TA关注的人

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