![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 79
什么是快乐
这个作者很懒,什么都没留下…
展开
-
SSO单点登录和OAuth2区别
概述SSO和Oauth2.0原创 2023-03-20 14:43:30 · 223 阅读 · 0 评论 -
springboot自定义注解记录日志
AOP和注解记录日志原创 2023-02-17 17:26:52 · 419 阅读 · 0 评论 -
synchronized(this)和synchronized(obj)
首先synchronized(this)和synchronized(obj)区别原创 2023-02-05 23:04:50 · 1717 阅读 · 3 评论 -
常用模式——策略模式和适配器模式的应用
使用策略模式和适配器模式优化代码原创 2022-10-24 20:02:29 · 1519 阅读 · 0 评论 -
ThreadLocal原理与使用
threadlocal的学习与使用原创 2022-07-02 16:06:07 · 378 阅读 · 0 评论 -
Java+Vue对密码AES加密和RSA加密处理
Java+vue的AES加密和RSA加密实现原创 2022-01-17 23:25:25 · 3915 阅读 · 2 评论 -
fastJSON使用
fastJSONFastJson主要有三个类:JSON:FastJson解析器用于JSON格式字符串与JSON对象及JavaBean之间的转化。也是最基础的一个类,因为看过源码之后会发现,下面的两个类继承了JSON类,其中很多方法的实现也是基于JSON类中的parse()方法。JSONObject: FastJson提供的json对象,用于将String对象、javaBean、Collection等解析为JSON格式的对象JSONArray: FastJson提供json数组对象对象与JSON原创 2021-08-09 16:00:40 · 387 阅读 · 1 评论 -
排序算法-Java
冒泡排序冒泡排序的基本思想是:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素值移动到数组前面,把大的元素值移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。冒泡排序的算法比较简单,排序的结果稳定,但时间效率不太高。Java 中的冒泡排序在双层循环中实现,其中外层循环控制排序轮数,总循环次数为要排序数组的长度减 1。而内层循环主要用于对比相邻元素的大小,以确定是否交换位置,对比和交换次数依排序轮数而减少。 public int[] BubbleSort原创 2020-09-08 10:56:00 · 102 阅读 · 0 评论 -
java基础知识和常见关键字
final、static、abstractstatic被 static 关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。static 作用于代码块:称作静态代码块static 方法(类方法)只能访问 static 方法,不能访问非 static 方法static 方法只能访问 static field, 不能访问非 static fieldstatic方法不能访问本类中的非static变量非 static 方法可以访问 static fields原创 2020-08-29 11:37:23 · 120 阅读 · 0 评论 -
Java中的异常及处理
Java中异常的分类1.Java 标准库内建了一些通用的异常,这些类以 Throwable 为顶层父类。Throwable 又派生出 Error 类和 Exception 类。错误:Error 类以及他的子类的实例,代表了 JVM 本身的错误。错误不能被程序员通过代码处理,Error 很少出现。因此,程序员应该关注 Exception 为父类的分支下的各种异常类。异常:Exception 以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被 Java 异常处理机制使用,是异常处理原创 2020-08-27 16:10:33 · 159 阅读 · 0 评论 -
java8新特性—lambda表达式和Stream API
lambda表达式一个匿名函数 ,代码更简洁灵活。格式: -> 箭头操作符箭头左边:lambda形参列表/其实就是接口中抽象方法的形参列表箭头右边:lambda体 / 其实就是重写的抽象方法的方法体注意: lambda 表达式针对的是==接口==语法格式一:无参、无返回值//非lambda表达式写法Runnable l1=new Runnable() { @Override public void run() { System.out.printl原创 2020-08-18 15:32:14 · 123 阅读 · 0 评论 -
Java 面向对象特性
JAVA 面向对象特性Java四大特性(抽象、封装、继承、多态)类同级类在一个.java 文件中可以有多个同级类(和 public 一样的位置,注意不是内部类),编译一个 java 文件会生成多个 class 文件。修饰符只可以 abstract、final和无修饰符,不能是其他的 protected/private/public等修饰符。一个.java文件最多有一个public修饰的类名。内部类内部类是一个类当中的一个类,相当于一个类进行了嵌套,就如同循环的嵌套一般。内部类有一个特征:内部类当原创 2020-08-14 09:38:13 · 105 阅读 · 0 评论 -
Java浅拷贝和深拷贝
Java 中的数据类型分为基本数据类型和引用数据类型。对于这两种数据类型,在进行赋值操作、用作方法参数或返回值时,会有值传递和引用(地址)传递的差别。有时会遇到把现有的一个对象的所有成员属性拷贝给另一个对象的需求。或者使用一个对象等于另一个对象行使“指针”的作用。比如说对象 A 和对象 B,二者都是 ClassC 的对象,具有成员变量 a 和 b,现在对对象 A 进行拷贝赋值给 B,也就是 B.a = A.a; B.b = A.b;这时再去改变 B 的属性 a 或者 b 时,可能会遇到问题:假设 a原创 2020-08-06 22:32:02 · 99 阅读 · 0 评论 -
Java中的线程池
1、线程池实现方式 线程池是一种多线程处理形式,处理过程中将任务提交到线程池,任务的执行交由线程池来管理。如果每个请求都创建一个线程去处理,那么服务器的资源很快就会被耗尽,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。2、线程池使用创建// 第一种方式——快捷方式ThreadPoolExecutor pool =(ThreadPoolExecutor)原创 2020-08-04 17:26:16 · 75 阅读 · 0 评论 -
Java 中的锁机制
synchronized介绍synchronized关键字是Java加锁的一种方式,用于修饰代码块和方法(静态方法和普通方法),根据修饰范围的不同,可以分为类锁和对象锁。同时,synchronized也是一种可重入锁。synchronized实现原理synchronized 是由一对 monitorenter/monitorexit 指令实现的,monitor 对象是同步的基本实现单元。在 JVM 处理字节码会出现相关指令。jvm 基于进入和退出 Monitor 对象来实现方法同步和代码块同步。1原创 2020-08-04 16:03:33 · 211 阅读 · 0 评论 -
Java多线程概念
多线程相关概念进程:狭义上是指程序运行的实例,广义上是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元。进程中可以有很多线程线程:是程序执行的最小单元,是CPU调度和分配的基本单位。两者区别:资源上看,进程主要考虑cpu和内存,线程主要考虑CPU调度。进程消耗CPU资源多,线程少Java中,Java程序都是运行在JVM进程上的,所以程序都是以线程方式执行在JVM进程中。并行 (parallel):指在同一时刻,有多条指令在多个处理器上同时执行。所以无原创 2020-08-03 18:01:42 · 166 阅读 · 0 评论 -
锁的分类
锁的分类从不同的角度去看,它们就会衍生出不同的名字。乐观锁、悲观锁宏观上锁的定义只有两种:乐观锁和悲观锁,悲观锁: 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。、 悲观锁机制存在以下问题:在多线程竞争下,加锁、释放锁会导致比较多的原创 2020-08-03 14:58:25 · 165 阅读 · 0 评论 -
Java 中map和list
map和list1、List(有序、可重复)List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。2、Set(无序、不能重复)Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。3、Map(键值对、键唯一、值不唯一)Map集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键.原创 2020-08-02 17:43:23 · 3141 阅读 · 0 评论 -
Java 集合 之HashMap
一、什么是哈希表在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n),当然,对于有序数组,则可采用二分查找,插值查找,斐波那契查找等方式,可将查找复杂度提高为O(logn);对于一般的插入删除操作,涉及到数组元素的移动,其平均复杂度也为O(n)线性链表:对于链表的新增,删除等操作(在找到指定操作位置后),仅需处理结转载 2020-07-28 17:49:52 · 181 阅读 · 0 评论