![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 66
小王同学棒棒哒
这个作者很懒,什么都没留下…
展开
-
Mybatis逆向工程创建过程中的问题
mybatis逆向工程实现时出现的一些常见的问题原创 2021-12-30 15:33:46 · 263 阅读 · 1 评论 -
ThreadLocal
什么是ThreadLocal?使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal并不是一个Thread,而是Thread的局部变量。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。从线程的角度看,目标变量就像是线程的本地变量,这也是类名中“Local”所要表达的意思。ThreadLocal的作用线程并发:在多线程并发的场景下传...原创 2021-09-05 22:10:02 · 101 阅读 · 0 评论 -
公平锁、非公平锁、可重入锁、递归锁、自旋锁
公平锁、非公平锁什么是公平锁与非公平锁?公平锁:先来先服务。非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先级获取锁在高并发的情况下,有可能会造成优先级反转或者饥饿现象。默认是非公平锁,非公平锁的优点在于比公平锁大。如何设置公平锁?//参数默认是false,表示非公平锁,参数为true时,表示为公平锁。ReentrantLock re = new ReentrantLock(true);ReentrantLock re1 = new原创 2021-09-01 23:22:34 · 200 阅读 · 0 评论 -
CAS问题
什么是CAS?翻译过来就是——比较并交换(compare and swap)CASDemo面试题:AtomicInterge底层为啥使用CAS而不使用Synchronized?Synchronized只允许一个线程进来修改,程序的并发性不好,但是CAS中使用的是do-while循环语句,既保证了一致性,又保证了并发性。CAS的底层原理分析:底层调用底层使用的unsafe类来保证CAS的原子性。...原创 2021-09-03 07:08:45 · 164 阅读 · 0 评论 -
Volatile
volatile是什么?volatile是JVM提供的轻量级的同步机制。保证可见性; 不保证原子性; 禁止指令重排;JMM(Java内存模型)要求是:原子性,有序性,可见性。本身是不存在的,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。可见性JMM关于同步的规定:线程解锁前,必须将共享变量的值刷新回主内存 线程加锁前,必须读取主内存的值到自己的工作内存 加锁解锁是同一把锁由于JV...原创 2021-08-20 17:46:43 · 76 阅读 · 0 评论 -
Java8新特性整理
Lambda表达式的使用Lambda 伴随接口实现的,没有接口,没有Lambda表达式。Lambda表达式是函数式接口的实例。以前使用匿名实现类的对象现在都能用Lamdba表达式来代替。举例: (o1,o2) -> Integer.compare(o1,o2);格式:-> :lambda操作符 或 箭头操作符->左边:lambda形参列表 (其实就是接口中的抽象方法的形参列表)->右边:lambda体 (其实就是重写的抽象方法的方法体)Lambda表达式的使用:(分原创 2021-08-19 22:11:36 · 58 阅读 · 0 评论 -
HTTP、TCP、UDP、HTTPS协议
复杂网络一个HTTP请求的分层解析流程输入地址并确认后,浏览器对域名进行访问,浏览器对域名进行解析,如果浏览器有域名对应的DNS相关信息的缓存,有的话可以拿到服务端的IP地址,如果没有的话,会去本地的host文件查看是否进行了配置,如果host文件没有配置相关的信息,那么就会发起DNS的请求用来获取对应的服务器的IP地址。应用端会构造DNS的请求报文,应用层会调用传输层的UDP的相关协议进行数据传输,会在DNS的基础上加上UDP的请求头然后传输信息至网络层,网络层会在UDP的请求报文基础上加上IP的原创 2021-08-17 21:20:39 · 3659 阅读 · 1 评论 -
day10 java
一、JDK中提供的java、javac、jar等开发工具也是用Java编写的。二、在Web应用程序中,web容器负责将HTTP请求转换为HttpServletRequest对象。三、TextField 的事件监听器接口是ActionListener。四、当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用CyclicBarrier。五、Java 提供的事件处理模型是一种人机交互模型。它有三个基本要素:事件源,时间对象,时间监听器。六、protected 可以被同一个包中的所有类访原创 2021-08-15 13:41:13 · 1633 阅读 · 2 评论 -
List和Map接口中的常用方法
List接口add(int index,Object obj):在index位置插入obj元素在集合中addAll(int index,Collection col):从index的位置开始,将col的元素加 入当前集合get(int index):获取某位置的元素,返回值为Objectint indexOf(Object obj):查询某一元素在集合中首次出现的位置,如果不存在则返回-1int lastIndexOf(Object obj):返回obj在此集合中最后出现的位原创 2021-08-13 15:51:25 · 117 阅读 · 0 评论 -
collections工具类常用的方法
reverse(List):反转 List 中元素的顺序shuffle(List):对 List 集合元素进行随机排序sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元素进行排序swap(List,int, int):将指定 list 集合中的 i 处元素和 j 处元素进行交换Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素原创 2021-08-13 15:48:38 · 72 阅读 · 0 评论 -
Collection接口中常用的方法
add(object e ):将元素e添加到一个集合对象中;size():获取添加元素的个数addAll():将某一集合元素添加到另一个集合isEmpty():判断集合是否有数据clear():清空集合元素contains(object e):判断集合中对否存在e ,一般对于自定义的类要重写equals()方法,才会返回true,否则返回false。containsAll(object e1,e2,e3......):判断某集合中是否包含形参的所有数值,返回值为布尔类型remove(objec原创 2021-08-13 15:47:14 · 193 阅读 · 0 评论 -
Object类中的常用方法
object类中的常用方法原创 2021-08-13 15:43:05 · 104 阅读 · 0 评论 -
day09 Java基础
一、在运行时,由java解释器自动引入,而不用import语句引入的包:java.lang包是java语言的核心包,lang是language的缩写java.lang包定义了一些基本的类型,包括Integer,String之类的,是java程序必备的包,有解释器自动引入,无需手动导入二、注意这种坑:当中的循环停止的判断是错误的for (m = 0, n = -1; n = 0; m++, n++)n++;三、java程序初始化顺序父类静态变量,父类静态代码块(只执行一次),子类静态变量,子类原创 2021-08-13 15:30:10 · 367 阅读 · 0 评论 -
day08 Java基础
一、存根(Stub)与动态链接技术有关存根类是一个类,它实现了一个接口,它的作用是:如果一个接口有很多方法,如果要实现这个接口,就要实现所有的方法。但是一个类从业务来说,可能只需要其中一两个方法。如果直接去实现这个接口,除了实现所需的方法,还要实现其他所有的无关方法。而如果通过继承存根类就实现接口,就免去了这种麻烦。RMI 采用stubs 和 skeletons 来进行远程对象(remote object)的通讯。stub 充当远程对象的客户端***,有着和远程对象相同的远程接口,远程对象的调用实际是通原创 2021-08-07 21:03:45 · 163 阅读 · 0 评论 -
day07 Java基础
关于Java的抽象类、接口,原创 2021-08-06 21:19:21 · 261 阅读 · 0 评论 -
day06 Java基础
一、一般关系数据模型和对象数据模型之间有以下对应关系:表对应类,记录对应对象,表的字段对应类的属性二、threadlocal 使用开放地址法 - 线性探测法:当前哈希槽有其他对象占了,顺着数组索引寻找下一个,直到找到为止hashset 中调用 hashmap 来存储数据的,hashmap 采用的链地址法:当哈希槽中有其他对象了,使用链表的方式连接到那个对象上三、关于Java中的ClassLoaderjava中类的加载有5个过程,加载、验证、准备、解析、初始化;这便是类加载的5个过程,而类加载器的任原创 2021-08-05 13:54:21 · 96 阅读 · 0 评论 -
day05Java基础
一、在基本JAVA类型中,如果不明确指定,整数型的默认是什么类型?带小数的默认是什么类型?整数类型 默认为 int带小数的默认为 double二、与未加访问控制符的缺省情况相比,public和protected修饰符扩大了属性和方法的被访问范围,private修饰符则缩小了这种范围。三、有关会话跟踪技术的描述1 .隐藏域在页面中对于用户是不可见的,在表单中插入隐藏域的目的在于收集或发送信息,以利于被处理表单的程序所使用。浏览者单击发送按钮发送表单的时候,隐藏域的信息也被一起发送到服务器。2 .有原创 2021-08-04 18:59:14 · 92 阅读 · 0 评论 -
Java文件的读和写
IO流File类一、创建File类型的对象File类申明在Java.io 包下; public void test(){ File file1 =new File("hello.txt");//相对路径 File file2 =new File("E:\\online_education\\he.txt");//绝对路径 //构造器2 File file3 =new File("E:\\online_education","root");原创 2021-08-03 18:45:49 · 54 阅读 · 0 评论 -
day04Java基础
一、以下代码输出结果是:public class Example{ String str = new String("good"); char[ ] ch = { 'a' , 'b' , 'c' }; public static void main(String args[]){ Example ex = new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str +原创 2021-08-03 15:26:17 · 92 阅读 · 0 评论 -
day03 Java基础
一、Java中的char是Unicode编码。Unicode编码占两个字节,就是16位,足够存储一个汉字。二、以下代码将输出什么结果public class Test { public static void main(String[] args) { System.out.println("return value of getValue(): " + getValue()); } public static int getValue原创 2021-08-02 21:57:49 · 56 阅读 · 0 评论 -
day02 Java基础
一、字符界面下接受用户从键盘输入,需要import的包是:字符界面下前端用户输入、后台程序获取,都是字符流的传输,因此需要导入java.io包。而java.util中的Scanner则是获取控制台的输入。二、如下:class Foo { final int i; int j; public void doSomething() { System.out.println(++j + i); }}运行结果是:不能执行,因为编译有错。原因:final类原创 2021-08-01 12:19:17 · 136 阅读 · 0 评论 -
day01Java基础
一、Servlet的生命周期1.加载:容器通过类加载器使用Servlet类对应的文件来加载Servlet2.创建:通过调用Servlet的构造函数来创建一个Servlet实例3.初始化:通过调用Servlet的init()方法来完成初始化工作,这个方法是在Servlet已经被创建,但在向客户端提供服务之前调用。4.处理客户请求:Servlet创建后就可以处理请求,当有新的客户端请求时,Web容器都会创建一个新的线程来处理该请求。接着调用Servlet的Service()方法来响应客户端请求(Ser原创 2021-07-31 11:20:44 · 94 阅读 · 0 评论