
java面试题
跳舞的猴子
5G网络 虚拟网络映射 网络安全
展开
-
第一个Mybatis程序中报“空指针”异常
《第一个Mybatis程序》中如果报“空指针”异常,这是因为你的MybatisUtils.java包中已经在外部声明过sqlSessionFactory。修改方法:把MybatisUtils.java文件中的try{}中的代码块的第三句改成即去掉原先的SqlSessionFactory声明。...原创 2021-07-27 12:03:27 · 377 阅读 · 0 评论 -
synchronized与Lock的区别
Lock是显式锁(手动开启和关闭锁),synchronized是隐式锁,出了作用域就会自动释放。Lock只有代码块锁,synchronized有代码块锁和方法锁。使用Lock锁,JVM将花费较少的时间来调度线程,性能更好。并且具有更好的扩展性(提供更多的子类)优先使用顺序:Lock > 同步代码块 > 同步方法...原创 2021-07-26 13:34:47 · 186 阅读 · 0 评论 -
什么是死锁?死锁发生的条件?解决的办法?
死锁的定义:多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形,某一个同步块同时拥有"两个以上对象的锁"时,就可能会发生"死锁"的问题。简单来说,死锁就是多个进程在运行过程中因为抢夺资源而造成的一种僵局,使计算机程序停止运行的一种情况。举个例子:两个小孩A和B,小孩A拥有一个小汽车,小孩B拥有一个玩具枪,此时两个小孩都不放弃自己的玩具的同时要去抢夺对方的玩具,这就形成了一种僵持局面。产生死锁的四个必要条件:互斥条件原创 2021-07-26 11:32:17 · 1053 阅读 · 0 评论 -
Java静态代理模式以及与Thread的比较
静态代理模式:1.真实对象和代理对象都要实现同一个接口2.代理对象代理真实对象好处:代理对象可以做很多真实对象做不了的事情真实对象专注做自己的事情代码案例分析及与Thread类的比较:public class StaticProxy { public static void main(String[] args) { You you = new You();//创建一个结婚对象,“你” //使用Thread做对比 new Threa原创 2021-07-25 10:08:39 · 192 阅读 · 0 评论 -
Java多线程案例----龟兔赛跑
Java多线程案例----龟兔赛跑代码案例:public class Race implements Runnable{ public static String winner; @Override public void run() { for (int i = 0; i <= 100; i++) { //模拟兔子睡眠,当兔子跑到一半的时候让其睡50毫秒 if (Thread.currentThread()原创 2021-07-24 16:41:43 · 381 阅读 · 0 评论 -
Java多线程创建方法及案例分析
Java多线程创建方法及案例分析创建线程的三种方法继承Thread类实现Runnable接口实现Callable接口三种实现多线程的方法中,Thread和Runnable是我们常用的方法,Callable在实践中使用较少,做了解。方法一:继承Thread类自定义线程类继承Thread类重写run() 方法,编写线程执行体创建线程对象,调用**start()**方法启动线程代码案例://创建线程方式1:继承Thread类,重写run方法,调用start开启线程//线程开启不一定原创 2021-07-24 16:03:45 · 209 阅读 · 0 评论 -
TCP和UDP的区别
TCP和UDP的区别1.TCP是面向连接的,发送数据前必须先建立连接(TCP的三次握手);UDP是无连接的,即发送数据前不需要建立连接。2.TCP连接只能是点对点的(一对一);UDP支持一对一、一对多、多对一和多对多的交互通信。解释:每一条TCP连接有两个端点,这个端点叫做套接字(socket)或插口。什么是套接字?端口号拼接到IP地址即构成了套接字。所以说,每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。3.TCP提供可靠交付的服务,通过TCP连接传送的数转载 2021-06-23 17:07:46 · 238 阅读 · 0 评论 -
HTTP和HTTPS的区别是什么?
HTTP和HTTPS的区别是什么?HTTPS简单来说:HTTPS是安全超文本协议,在HTTP基础上具有更强的安全性,HTTPS是使用TLS/SSL加密的HTTP协议。HTTPS在申请证书上需要使用CA申请证书。HTTPS 工作在443端口,而HTTP默认工作在80端口。SSL和TLSSSL(Secure Sockets Layer)安全套接层。它是位于HTTP等各种应用层协议之下,TCP/IP层之上的一个协议,为数据通信提高安全支持。主要任务是提供私密性,数据完整性和身份认证。原创 2021-06-18 11:29:03 · 262 阅读 · 2 评论 -
剑指offer刷题笔记||字符串的反转
剑指offer刷题笔记||344.字符串的反转题目描述:解法:使用双指针class Solution { public void reverseString(char[] s) { char a; int left = 0; int right = s.length-1; while(right > left){ a = s[left]; s[left] = s[right]原创 2021-06-17 15:19:29 · 194 阅读 · 0 评论 -
Java基础||“==”和“equals”的区别是什么?
谈谈“==”和“equal”的区别是什么?==:对于基本类型是进行值的比较,对于引用类型是进行引用的比较equals:equals默认是进行引用的比较,一般情况,我们需要将equals进行重写,变成值的比较代码示例如下:String x = "HelloWorld";String y = "HelloWorld";String z = new String("HelloWorld");System.out.println(x==y); // trueSystem.out.println(x=原创 2021-06-15 22:07:33 · 1173 阅读 · 1 评论