自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java Map的最高校遍历方法

public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); for (int i = 0; i < 200; i++) { map.put("" + i, "value" + i); } // 第一种:普遍使用,二次取值 System.out.println("-------------第一种------------------

2020-10-29 16:01:44 173

原创 Spring框架中有哪几种事件

Spring 提供了以下5种标准的事件:上下文更新事件(ContextRefreshedEvent):在调用ConfigurableApplicationContext 接口中的refresh()方法时被触发。上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext的Start()方法开始/重新开始容器时触发该事件。上下文停止事件(ContextStoppedEvent):当容器调用ConfigurableApplication

2020-10-27 15:47:04 633

转载 Tomcat Connector的三种运行模式

BIO同步并阻塞 一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。Tomcat7或以下,在Linux系统中默认使用这种方式。配制项:protocol=”HTTP/1.1”NIO同步非阻塞IO利用Java的异步IO处理,可以通过少量的线程处理大量的请求,可以复用同一个线程处理多个connection(多路复用)。Tomcat8在Linux系统中默认使用这种方式。Tomcat7必须修改Connector配置来启动。配制项:protocol=”org.apache.coyot.

2020-10-27 15:31:06 293

原创 什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决?

什么是序列化序列化:把对象转换为字节序列的过程称为对象的序列化。反序列化:把字节序列恢复为对象的过程称为对象的反序列化。怎么序列化实现Serializable接口,指定serialVersionUID字段。public class User implements Serializable { private static final long serialVersionUID = -2789105097448974933L;}为什么序列化对象、文件,有许多不同的格式,很难统一

2020-10-27 11:44:41 991

原创 mybatis-plus的QueryWrapper为同一列设值时引发的bug

baomidou mybatisplus日常操作语法下面 baomidou mybatisplus 简称 mybatisplus比如查询的语法非常简单,如下:QueryWrapper<User> qw = new QueryWrapper<>();qw.eq("sex", 1);int count = userMapper.selectCount(qw);声明一个QueryWrapper对象,然后设置查询参数,eq()即等于,key是列名,value是值。接着调用m

2020-10-23 17:51:21 3106 1

原创 Java算法中O(1),O(logn),O(n),O(nlogn),O(n2)是什么

O(1),O(logn),O(n),O(nlogn),O(n2)是用于表示算法的时间复杂度的一个函数。时间复杂度常用大O符号表述,O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系,反应随着数据增值时间复杂度的渐变过程。比如我们统计排序算法复杂度时的对比表:常数阶O(1)O(1)就是最低的时空复杂度了,也就是耗时/耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时/耗空间都不变。 哈希算法就是典型的O(1)时间复杂度,无论数据规模多大,都可以在一次计算后找到目标(不考虑

2020-10-22 16:32:48 1569

原创 Java位移运算符,左移运算符(<<),有符号右移运算符(>>),无符号右移运算符(>>>)

位移运算符操作的对象是二进制的位,可以用位移运算符来处理int型整数。public static void main(String[] args) { int x = 15; //1111 int y = 3; System.out.println(x<<y); //结果为120,1111000 System.out.println(x>>y); //结果为1,0001 System.out.println(x>>>y); /

2020-10-22 15:02:13 424

原创 二进制转十进制,十进制转二进制

十进制转二进制,采用短除法比如要将十进制的29转成二进制: 用29除以2,商写在下面,余数写在商的右边。除到商为0为止,然后倒序排列余数,得到11101即为二进制。二进制转十进制,采用按权相加法比如十进制29的二进制为11101,转换成十进制如下:说明:2的几次方那个次数是怎么确定的?方式一:比如从左数的第一位1,在它前面还有四位,那么它的次数就是为4。方式二:比如从右边开始,第一位是从0次方开始,以此类推。说明:任何除0以外的数的0次方都是1 。如3的0次方是1,-1的0次方也是

2020-10-22 11:12:25 1409

转载 深入比较理解Java中 ArrayList 和 LinkedList 的区别

谈谈ArrayList 和 LinkedList 的区别?常规答案:ArrayList 是基于数组实现的,LinkedList 是基于双向链表实现的。ArrayList 在新增和删除元素时,因为涉及到数组复制,所以效率比 LinkedList 低,而在遍历的时候,ArrayList 的效率要高于 LinkedList。如果是面试,这么回答就太简单了。接下来我们一起深入地研究一下 ArrayList 和 LinkedList 的数据结构、实现原理以及源码。

2020-10-14 15:48:08 164

转载 Java中几种异常处理方式

直接抛出异常通常,应该捕获那些知道如何处理的异常,将不知道如何处理的异常继续传递下去。传递异常可以在方法签名处使用 throws 关键字声明可能会抛出的异常。private static void readFile(String filePath) throws IOException { File file = new File(filePath); String result; BufferedReader reader = new BufferedReader(new .

2020-10-13 14:50:03 173

原创 Java高并发下一切皆有可能之指令重排

代码示例,我们通过while(true)不断循环,每次开始t1、t2两个线程改值、赋值,模拟并发请求的场景。t1改a值,把b赋值x;t2改b值,把a赋值y。@Slf4j(topic = "e")public class Test1 { public static int a = 0, b = 0, x = 0, y = 0; @SneakyThrows public static void main(String[] args) { int count = 0;

2020-10-13 10:15:34 310

原创 Java中什么是注解及如何实现自定义注解

什么是注解注解(annotation):元数据,一种代码级别的说明;即注解如同一张标签;可以携带参数;在特定场景下由外部解析产生作用;元注解(用于自定义注解)@Documented 注解是否将包含在JavaDoc中,用的比较少;@Retention 什么时候使用该注解,可选值有:source 在源代码阶段使用,如@Override,lombok的注解@Data、@EqualsAndHashCode等等。@Target(ElementType.METHOD) @Retention

2020-10-11 12:19:39 434

原创 JDK8新特性函数式接口的使用示例

基础知识在写函数式接口的使用示例之前,先了解如下几个知识:行为参数化:是JDK8提出的,函数式编程的一种思想,把代码逻辑包装为一个参数传到方法里。Lambda表达式:是JDK8提出的,可以理解为简洁的表示可传递的匿名函数的一种方式,它没有名称,但它有参数列表、函数体、返回类型,可以抛出一个异常类型。函数式接口:本质上是只有一个抽象方法的普通接口,可以被隐式的转换为Lambda表达式,需要用@FunctionalInterface注解定义。JDK8默认方法和静态方法可以在函数式接口中

2020-10-10 20:03:26 464

原创 Java线程池ThreadPoolExecutor的execute()源码解读

public class ThreadPoolExecutor extends AbstractExecutorService { // 高3位存状态、低27位存线程数 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); //工作线程集合 private final HashSet<Worker> workers = new HashSet<Worker>(); public v

2020-10-10 13:09:53 726

原创 Java编译优化惹得祸,while无限循环

下面这段代码,按正常逻辑打印完"[flag = true] end"日志后,程序就会正常退出了。但实际运行,程序未能正常退出,因为while循环没有退出。private static boolean flag;public static void main(String[] args) throws Exception { Thread t = new Thread(() -> { int i = 0; while (!flag) {

2020-10-09 18:54:41 999 3

SimpleStickyNotes_5.3.exe

SimpleStickyNotes-5.3 for window10 Updated: Nov 14, 2021

2021-12-13

空空如也

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

TA关注的人

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