- 博客(23)
- 收藏
- 关注
原创 常见面试题之ArrayList
包下的集合类都是快速失败的,不能在多线程下发生并发修改(迭代过程中被修 改),比如HashMap。在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修。原理:由于迭代时是对原集合的拷贝进行遍历,所以在遍历过程中对原集合所作的修改并不能被迭。能访问到修改后的内容,即:迭代器遍历的是开始遍历那一刻拿到的集合拷贝,在遍历期间原集合。采用安全失败机制的集合容器,在遍历时不是直接在集合内容上访问的,而是先复制原有集合内。包下的容器都是安全失败,可以在多线程下并发使用,并发修改,比。
2022-10-07 18:35:19 176
原创 JAVA是值传递还是引用传递
值传递是指在方法调用时,将实际参数的值或内存地址复制一份传递到方法中。(创建参数值或内存地址的副本) 引用传递是指在调用方法时,将实际参数的值直接传递到方法中,不创建参数或内存地址的副本。JAVA中都是值传递如果参数是基本类型,复制参数的值传递给方法 如果参数是引用类型,复制对象在Heap堆中内存地址值,传递给方法JAVA中的集合和数组都是引用传递,存放的是内存对象的地址
2022-09-08 19:01:51 239
原创 JVM加载class文件的原理机制
JVM是JAVA虚拟机的简称,JAVA中所有的类都必须被装载JVM中才能运行,类的装载是由JVM中的类加载器和它的子类完成。类加载器包括:根加载器(BootStrap ClassLoader)、扩展加载器(Extension ClassLoader)、应用程序类加载器(AppClassLoader)。类的加载是指将类的.class文件从硬盘读取到内存中,然后产生与所加载类对应的Class对象。加载完成后,对象还不完整,所以此时的类还不可用。当类被加载后就进入连接阶段,这一阶段包括验证(验证文件是否正确)
2022-09-08 18:50:02 213
原创 java语言的特点
简单易学,面向对象(封装、继承、多态) 跨平台(Java虚拟机实现跨平台性) 可靠性、安全性、支持多线程、支持网络编程 执行时采用解释+编译的方式
2022-09-08 17:50:26 161
原创 面向对象VS面向过程
面向对象:把构成问题的事务拆解成多个对象,建立对象的目的不是为了完成一个步骤,而是为了描述对象在解决问题的步骤中的行为。第一步:打开洗衣机;面向过程:会把任务拆解成多个步骤,每个步骤就是一个函数,使用时依次调用就可以了。人(打开洗衣机、放衣服、放洗衣液)、洗衣机(清洗、烘干)。,注重事件的参与者(对象)以及每个对象各自需要做什么事。,但是类调用时需要实例化,开销较大,比较耗费资源,所以。,更注重事情的步骤和顺序;具有封装、继承、多态的特性,所以。更加灵活,易于维护、扩展和复用。注重事情的本身,所以。
2022-09-04 12:39:12 113
原创 Error VS Exception 、throw VS throws
throw用于引发异常,在方法体或代码块中使用,用throw引发的异常需要用try-catch处理或用throws将异常抛出,throw时根据业务场景引发的异常不一定是jdk中已定义的异常,一般使用自定义异常。Error类型的错误通常是虚拟机错误,如系统崩溃、内存不足、堆栈溢出等,编译器不会对这类错误进行检测,Java应用程序也不会对这类错误进行捕获,一旦错误发生程序通常会终止,仅靠程序本身无法恢复;throws是抛出异常,在方法声明处使用,用于标识当前方法可能存在的异常列表;...
2022-08-11 20:10:36 344
原创 java多线程
1.为什么书写的是run()方法,调用的却是start方法?答:只有调用了 start()方法,才会表现出多线程的特性,不同线程的 run() 方法里面的代码交替执行。如果直接调用run()方法是面向对象中的方法调用,只有一个线程
2022-06-02 16:34:54 276
原创 equals和==的区别
从底层源码来看,equals是object类的一个方法,和==本质上没有区别,equals就是==,两个比较的都是地址,但是String重写了equals方法,见下图,所以在String中==比较的是字符串地址是否相等,而equals比较的是两个字符串的值是否相等。public static void k(){ //equals和==的区别 比较的都是地址,在String中equals比较的是两个字符串的值是否相等; DemoA da1=new DemoA()
2022-05-08 10:15:42 224
原创 DOM对象的基本操作
DOM对象: DOM的英文全称是Document Object Model,即文档对象模型。文档一般是指HTML文档,DOM对象模型将HTML文档组织为以Node对象为节点的层次结构。一个节点是一个Node对象。Node对象按照节点类型分为元素节点、属性节点、文本节点和注释节点。元素节点(也称为元素对象)由元素节点、属性节点、文本节点和注释节点构成。innerHTML和innerTextinnerHTML:获取到元素的全部信息innerText:获取到元素的文本信息funct...
2022-05-05 17:38:31 1075
原创 正则表达式匹配规则及通过正则实现表单验证
正则表达式 <head> <meta charset="UTF-8"> <title>表单验证</title> <script> let flag1=1;//flag=0代表校验通过 let flag2=1;//flag=0代表密码输入一致 function checkName(){ l.
2022-05-05 17:03:09 456
原创 JAVA双循环实现冒泡排序法、排序算法
//冒泡排序法//随机产生一个数组,长度随机,内容随机 int len = (int) (Math.random() * 10 + 2); int[] array = new int[len]; for (int i = 0; i < len; i++) { array[i] = (int) (Math.random() * 100 + 1); } System.out.println(Arr..
2022-04-16 11:28:40 794
原创 线程的生命周期
a) 新建状态: i. 使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程 对象就处于新建状态。它保持这个状态直到程序 start()这个线程。 b) 就绪状态: i. 当线程对象调用了 start()方法之后,该线程就进入就绪状态,该状态 的线程位于可运行线程池中,变得可运行,等待获取 CPU 的使用权。 就绪状态的线程处于就绪队列中,要等待 JVM 里线程调度器的调度。 c) 运行状态: i. 如果就绪状态的线程获取 CPU 资源,..
2022-04-02 08:00:00 81
原创 如何创建一个线程?
a) 通过继承 Thread 类 //①.继承Thread类public class DemoA extends Thread{ /* 1.为什么书写的是run()方法,调用的却是start方法 2.为什么调用的是start方法,执行的却是run方法 3.为什么a1的run方法未执行完毕,a2的run方法就执行了 */ //②.重写run方法 当run方法被执行时,线程进入运行状态 public void run() { ..
2022-04-01 20:03:23 580
原创 假设有四个售票窗口,共同享有100张票的资源,编程实现售票窗口的售票业务,要求用到线程同步的知识实现。
【代码】假设有四个售票窗口,共同享有100张票的资源,编程实现售票窗口的售票业务,要求用到线程同步的知识实现。
2022-04-01 19:48:52 2228 2
原创 字节流和字符流
a) 字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流 对象。本质其实就是基于字节流读取时,去查了指定的码表。 b) 字节流和字符流的区别: i. 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码 表映射字符,一次可能读多个字节。 ii. 处理对象不同:字节流能处理所有类型的数据(如图片、avi 等),而字符流只 能处理字符类型的数据。 iii. 字节流:一次读入或读出是 8 位二进制。 iv. 字符流:一次读入或读出是
2022-03-29 20:52:48 912
原创 C/S模式和B/S模式
C/S 模式 服务器-客户机,即 Client-Server(C/S)结构。C/S 结构通常采取两层结构。服务器 负责数据的管理,客户机负责完成与用户的交互任务。 B/S 模式 B/S 结构(Browser/Server,浏览器/服务器模式)是 WEB 兴起后的一种网络结构模 式,WEB 浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能 实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。 ...
2022-03-29 09:30:00 16121
原创 HTTP协议、posth请求和get请求、HTTP状态码
1.GET 是从服务器上获取数据;POST 是向服务器传送数据。 2.在客户端,GET 通过 URL 提交数据,数据在 URL 中可见;POST 把数据放在 form 的数据体内提交。 3.GET 提交的数据最多只有 1024 字节;POST 提交的数据量无限制。 4.由于使用 GET 时,参数会显示在地址栏上,而 POST 不会,所以,如果这些 数据是非敏感数据,那么使用 GET;如果包含敏感数据,为了安全,用 POST。 ...
2022-03-28 17:26:12 303
原创 用户输入一个数,判断其是否是字母,如果是输出相应的字符
import java.util.Scanner;public class test{public static void main(String[] args){Scanner scan=new Scanner(System.in);int ASCII=scan.nextInt();char c=(char)ASCII;//强制转换为字符类型if((ASCII>=65&&ASCII<=90)||(ASCII>=97&&ASCII<=12.
2022-03-25 08:30:00 661
原创 输入一个字符串,统计出现次数最多的字符
输入一个字符串,统计出现次数最多的字符 Scanner scan=new Scanner(System.in); System.out.println("input:"); String str=scan.next(); int len=str.length(); // 将字符串--->char[] char[] chars=new char[len]; for (int i = 0; i <...
2022-03-24 19:10:04 2160
原创 为什么说String是常量?
String str1="asd";//值不改变,字符串asd不变System.out.println(str1);str1="sdf";//产生了一个新的字符串sdfSystem.out.println(str1);
2022-03-23 21:12:10 503
原创 抽象类中可以包含非抽象方法吗?如何使用这个非抽象方法?
抽象类中可以有非抽象方法,想使用非抽象方法有两种解决方法1.继承抽象方法,把这个类也声明为抽象类2.继承抽象方法,实现抽象类中未完成的方法public abstract class D { abstract void 愚公移山();//没有主体,抽象的方法 抽象方法需要子类重写 public void eat(){ System.out.println("吃饭"); } public void sleep(){ System.ou
2022-03-22 19:33:07 3928
原创 三目运算符的使用
三目运算符:()?():();总表达式结果=表达式1?表达式2:表达式3;例:int randomNum=(int)(Math.Random()*100+1);String num=(randomNum%2==0)?("偶数")("奇数");随机生成一个1到100的整数,判断这个随机数是否为偶数。...
2022-03-22 19:24:29 489
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人