java基础
文章平均质量分 73
sighting_info
这个作者很懒,什么都没留下…
展开
-
优雅关闭线程池
服务异常终止时,服务内部的线程池中的任务是否需要运行完成,如需要,则增加以下代码,等待任务执行完成后(时间可设置)再销毁。原创 2024-01-29 17:55:30 · 328 阅读 · 0 评论 -
java中的序列化和反序列化(serialVersionUID的作用)
1. 序列化和反序列化出现的背景什么时候需要序列化对象? 跨平台,分布式环境的对象传输,对象持久化等 一般程序在运行时,产生对象,这些对象随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以有各自不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些保存下来的对象。这种情况下就要用到对象的序列化。 对象序列化的最主要的用处就是在传递,和保存对象(object)的时候,保证对象的完整性和可传递性。...原创 2021-07-19 12:02:00 · 375 阅读 · 0 评论 -
springboot启动jar包控制台日志乱码问题
启动jar包前,在控制台输入CHCP 65001再执行其他代码即可;注:chcp 可以查看当前编码后来发现是logback的问题,换成log4j不会乱码原创 2018-08-20 09:17:52 · 4273 阅读 · 1 评论 -
@JsonDeserialize和@JsonInclude
@JsonDeserialize:把json字符串反序列化成对象;当前台数据传输到后台时,其中的某些字段类型错误,即,和我们在实体类中定义的字段类型不一致,此时就会出现类型转换错误;@JsonInclude(Include.NON_NULL) :springmvc中的标注,是为了控制返回的json字符串显示哪些字段。这里的设置是为null的字段不显示...原创 2019-09-05 10:20:52 · 337 阅读 · 0 评论 -
正则表达式regexp_replace
regexp_replace(1,2,3,4,5,6)语法说明:1:要替换的字段 2:替换的正则表达式 3:替换成什么 4:替换起始位置(默认从1开始) 5:替换的次数(0是无限次) 6:不区分大小写...原创 2019-12-26 18:15:33 · 3522 阅读 · 0 评论 -
unicode编码和utf-8的关系
1.历史问题:ASCII编码和非ASCII编码计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASCII 码,一直沿用至今。ASCII 码一共规定了128个字符的原创 2020-12-03 13:50:34 · 336 阅读 · 0 评论 -
java8中的steam
Stream是java8中新增加的一个特性,有关算法和计算的,它更像一个高级版本的 Iterator。(1)Stream是单向的,不可往复,数据只能遍历一次(2)迭代器使用的是外部迭代,而流使用的是内部迭代。采用内部迭代,项目可以透明地并行处理,或者用优化的顺序进行处理,要是使用 Java 过去的外部迭代方法,这些优化都是很困难的。(3)和迭代器又不同的是,Stream 可以并行化操作,迭代器只能命令式地、串行化操作。使用并行去遍历时,数据会被分成多个段,其中每一个都在不同的线程中处理,然后转载 2020-11-25 11:05:29 · 430 阅读 · 0 评论 -
java8新特性
1.接口中的默认方法和静态方法默认方法可以为接口添加一些默认的实现,实现接口时可以直接使用默认方法。静态方法:如果实现接口时,没有理由再额外提供一个带有实用方法的工具类2.lambda表达式Lambda允许把函数作为一个方法的参数,即行为参数化,函数作为参数传递进方法中。函数作为参数传递进方法中。3.函数式接口一个接口函数需要被实现的接口类型,我们叫它「函数式接口」。例如Comparator(比较器接口)@FunctionalInterfacepublic int..转载 2020-08-21 11:26:05 · 172 阅读 · 0 评论 -
基本数据类型比较
1 Integer之间的比较public class test2 { public static void main(String[] args) { Integer a = new Integer(1); Integer b = new Integer(1); //自动装箱,等价于Integer sInteger=Integer.valueOf(0), // 当c的范围在[min,max]中间时,取缓存值 //原创 2020-07-23 17:40:17 · 748 阅读 · 0 评论 -
JNDI
JNDI:JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。 JNDI( Java Naming and Directory Interface ),是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based...原创 2020-01-07 10:56:39 · 343 阅读 · 0 评论 -
Spring mvc中的拦截器Interceptor
1 功能Java 里的拦截器是动态拦截 action 调用的对象。它提供了一种机制可以使开发者可以定义在一个 action 执行的前后执行的代码,也可以在一个 action 执行前阻止其执行,同时也提供了一种可以提取 action 中可重用部分的方式。在AOP(Aspect-Oriented Programming,面向切面编程)中拦截器用于在某个方法或字段被访问之前进行拦截,然后在之前或之后...原创 2018-07-26 17:02:36 · 127 阅读 · 0 评论 -
web.xml加载顺序
1 顺序1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。 2、创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 3、容器将<context-param>转换为键值对,并交给servletContext...原创 2018-07-31 15:31:48 · 1233 阅读 · 0 评论 -
properties文件读取
1 读取整个文件 //读取资源文件,并处理中文乱码 public static Properties readPropertiesFile(String filename) { Properties properties = new Properties(); try { InputS...原创 2018-07-27 14:28:38 · 523 阅读 · 0 评论 -
Java 中的参数传递时传值呢?还是传引用?
答:是值传递。Java编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。#1.java仅有值传递Java中没有指针,所以没有引用传递;不过可以通过对象的方式来实现引用传递 ;类似java没有多继承 但可以用多次implemen...原创 2018-11-30 15:11:40 · 412 阅读 · 0 评论 -
二、面试-JVM运行机制
1. Java内存结构,JVM堆的基本结构。一、java运行时的数据结构https://blog.csdn.net/sicofield/article/details/784738361)类加载子系统:负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中可能还会存放运行时常量池信息,包括字符串字面量和数字常量(这部分常量信...原创 2019-09-03 16:40:42 · 412 阅读 · 1 评论 -
交换数组元素-不使用临时变量
正常我们交换元素都会引入一个临时变量。这里在某个博客的评论里看到一个巧妙的方法,就不需要临时变量了。(使用加减运算的方法也是可以的,但是有不足之处,就是当数组中的arr[a]+arr[b]的值大于int的最大值时,计算结果会溢出。导致arr[a]和arr[b]的值错误 /** * 交换数组元素 * @param arr * @param a * @...原创 2019-09-06 16:11:14 · 757 阅读 · 0 评论 -
四、面试-多线程/并发
1. Java中常见的锁,互斥锁,读写锁,信号量从并发的角度来讲,按照线程安全的三种策略看,主要内容都集中在互斥同步里,我们所讨论的锁也集中在这个部分。这个部分的锁都是悲观锁,第二个部分是非阻塞同步,这个部分也就一种通过CAS进行原子类操作,这个部分可以看成乐观锁,其实也就是不加锁。第三个部分是无同步方案,包括可重入代码和线程本地存储。我们这里主要讨论的就是互斥同步这一部分。一. 按照...原创 2019-12-27 17:45:44 · 362 阅读 · 1 评论 -
十、设计模式
1.你在设计一个工厂的包的时候会遵循哪些原则?2.你能列举一个使用了Visitor/Decorator模式的开源项目/库吗?3.你在编码时最常用的设计模式有哪些?在什么场景下用?适配器模式。多个类不兼容,系统可以建一个适配器,通过适配器选择适合的类的方法来执行。例如在一次估算房产价格的流程中,有很多不同的测算方法,各个方法之间是相互独立的,那么可以为这些方法建立一个适配器接口,每个...原创 2020-03-23 16:55:43 · 396 阅读 · 0 评论 -
java中的static
static的作用是:方便在没有创建对象的情况下来进行调用(方法/变量)。1 静态变量(共有成员) 我们可以基于一个类创建多个对象,每个对象都有自己的成员,那么我们想要一个共有的成员时,就需要static了。 Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使...原创 2018-07-24 12:28:47 · 98 阅读 · 0 评论