Java中常见面试题二(简单)

2022-01-13
阅读 3 分钟
666
线程是否安全: HashMap 是非线程安全的,Hashtable 是线程安全的,因为 Hashtable 内部的方法基本都经过synchronized 修饰。(如果你要保证线程安全的话就使用 ConcurrentHashMap 吧!)

Java中常见面试题一(困难)

2022-01-07
阅读 2 分钟
745
缓存击穿:这个跟缓存雪崩有点像,但是又有一点不一样,缓存雪崩是因为大面积的缓存失效,数据库崩溃了,而缓存击穿不同的是缓存击穿是指存在一个热点数据Key,有请求不断来访问这个Key,这么多请求在同一段时间内访问这个热点数据,当这个 Key 失效时间到了的时候,持续的这么多请求直接怂到数据库上了,就在这个 Key 值...

Java中常见面试题一(中等)

2022-01-07
阅读 2 分钟
794
Java中常见面试题一(中等)SQL语句优化有哪些?数据库的优化怎样优化?对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。应尽量避免在 where 子句中使用!=或<>操作符,否...

Java中常见面试题一(简单)

2022-01-07
阅读 1 分钟
837
抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

Java中的桥接模式

2021-12-31
阅读 2 分钟
1.2k
桥接是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。

Java中的适配器模式

2021-12-30
阅读 2 分钟
769
适配器模式简介适配器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。类模式要被适配的类TV和类Wire {代码...} 电源适配器接口IPowerAdapter {代码...} 电线和电视机适配器类TVPowerAdapter...

Java中的原型模式

2021-12-29
阅读 5 分钟
832
例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。

Java中的抽象工厂模式

2021-12-27
阅读 3 分钟
1k
抽象工厂模式简介模式属于创建型模式,它提供了一种创建对象的最佳方式。抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。接口IComp...

Java中的工厂模式

2021-12-27
阅读 2 分钟
854
工厂模式简介模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。静态简单工厂模式接口Animal {代码...} 子类Dog和Cat {代码...} 工厂类 {代码...} 测试类 {代码...} 测试结果 {代码...} 工厂方法模式接口Animal...

Java中的单例模式

2021-12-27
阅读 1 分钟
918
单例模式简介模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。主要分为:饿汉模式和懒汉模式饿汉模式 {代码...} 懒汉模式(单线程) {代码...}...

Java中稀疏数组的使用

2021-12-22
阅读 3 分钟
839
当一个数组中大部分元素是0,或者是一个相同的值时,可以使用稀疏数组来保存该数组。并且稀疏数组,行数为:原来数组非0元素个数+1;列数为:3。即:稀疏数组列数总是3。

Java输出日历

2021-07-18
阅读 2 分钟
1.3k
使用键盘输入日期,输出当月日历 {代码...} 输出结果 {代码...}

Java输出形状

2021-07-11
阅读 6 分钟
1.7k
输出矩形以此矩形案例(4行,9列的矩形)为例 {代码...} 前面有空格的矩形以此矩形案例(4行,9列的矩形)为例 {代码...} 输出平行四边形以此矩形案例(4行,9列的矩形)为例,要变成平行四边形第一行前面输出8个空格第二行前面输出7个空格第三行前面输出6个空格第四行前面输出5个空格 {代码...} 综上所述,得出规律:行...

Java输出九九乘法表

2021-07-11
阅读 2 分钟
1.6k
使用For嵌套循环输出九九乘法表正序输出 {代码...} 逆序输出 {代码...}

Java中try、catch、finally执行顺序

2021-07-08
阅读 3 分钟
4.9k
try、catch和finallytry块:用于捕获异常。后面可以有0个或多个catch块。只能有0个或1个finally块。try块后面,如果没有catch块,则后面必须有一个finally块。执行代码捕获异常后,进入catch块,try中出现异常代码处后面的代码不会再继续执行。catch块:用于处理处理try中捕获的异常。可以有多个catch块,进入一个catch...

Java中Error和Exception

2021-07-08
阅读 2 分钟
1.4k
Error和Exception区别:Error:程序无法处理的错误Exception:程序本身可以处理的异常PantUML语法 {代码...} {代码...} Java中异常类关系图,UML关系图如下所示

Java中的传递是值传递

2021-07-07
阅读 2 分钟
1.3k
Java中的参数类型形式参数,即形参实际参数,即实参 {代码...} Java中的两种参数传递情况值传递:指在进行函数方法调用时,将实际参数复制一份到函数方法内,在函数方法内对参数进行的修改操作,将不会影响到实际参数,则称为【值传递】。引用传递:指在进行函数方法调用时,将实际参数的地址引用直接传递到函数方法内,...

Java中的反射

2021-07-06
阅读 7 分钟
919
Java反射机制,是在程序的运行过程中,对于任何一个类,都能够知道它的所有属性和方法。对于任意一个对象,都能够知道调用他的任意属性和方法。这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。

Java类中各个成员初始化顺序

2021-07-05
阅读 2 分钟
1.1k
Java中各个成员初始化顺序静态属性:static开头定义的属性静态方法块:static{}包起来的代码块main()方法入口执行普通属性:非static定义的属性普通方法快:{}包起来的代码块无参构造函数:类名相同的方法普通属性:非static定义的属性普通方法快:{}包起来的代码块带参数的参构造函数:类名相同的方法(参数列表)其中...

Java中的注解Annotation

2021-07-03
阅读 2 分钟
1.2k
基本Annotation@Override@Deprecated@SuppressWarnings@SafeVarargs@Override用来指定方法重载,它可以强制一个子类必须覆盖父类的方法。主要是帮助我们避免一些低级错误,例如:父类中有个run()方法,子类中的方法名不小心写成了runn(),在程序编译时候会报错提示。只能作用于方法,不能作用于其他程序元素。@Deprecate...

Java中的线程生命周期

2021-07-02
阅读 1 分钟
1.2k
线程的生命周期新建(New)就绪(Runnable)运行(Running)阻塞(Blocked)死亡(Dead)新建和就绪状态新建当程序使用new关键字创建了一个线程后,该线程就处于新建状态,此时它和其他的Java对象一样,仅仅由Java虚拟机为其分配内存,并初始化其成员变量的值。此时的线程对象没有表现出任何线程的动态特征,程序不会执...

Java中的线程创建和启动

2021-07-02
阅读 3 分钟
1k
Java使用Thread类代表线程,所有的线程对象都必须是Thread类或者其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流(一段顺序执行的代码)。Java使用线程执行体来代表这段程序流。

Java中的程序、进程、线程

2021-07-01
阅读 1 分钟
889
程序、进程、线程的关系程序:操作系统中通常都支持同时运行多个任务,一个任务就是一个程序。程序只是一个静态的指令集合。进程:每个运行中的程序,就是一个进程。进程是一个正在系统中活动的指令集合。线程:当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。并行性和并发性并行性:指...

Java中的IO流

2021-07-01
阅读 2 分钟
1.1k
Java中的IO流分类输入IO流输入字节流(InputStream)处理流缓冲流(BufferedInputStream)转换流数据流(DataInputStream)标准流(System.in(InputStream))输入字符流(Reader)处理流缓冲流(BufferedReader)转换流(InputStreamReader)数据流标准流UML关系图如下所示PantUML语法 {代码...} {代码...} 输出IO流输...

Java中Collections和Arrays类

2021-06-30
阅读 1 分钟
1.4k
Collections是个java.util下的专用静态类,它包含有各种有关集合操作的静态方法。提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作. {代码...}

Java中的集合

2021-06-30
阅读 3 分钟
1.3k
Java集合体系Set(接口):代表无序、不可重复的集合List(接口):代表有序、重复的集合Map(接口):代表具有映射关系的集合Queue(接口):代表队列集合集合类和数组区别数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引用变量)。集合里只能保存对象(实际上保存的是对象的引用变量,但通常习惯...

Java中的访问控制符

2021-06-29
阅读 2 分钟
1k
Java提供了4种访问控制级别private不加任何访问控制符的访问控制级别(default)protectedpublic从上到下,访问控制级别由小到大。权限介绍private:当前类访问权限。如果类中的成员(包括属性、方法和构造器等)使用private访问控制符来修饰,则这个成员只能在当前类的内部被访问。default:包访问权限。如果类中的成员...

Java面向对象三大特征

2021-06-29
阅读 2 分钟
1.1k
父类与子类的关系是一种一般和特殊的关系。即,父类(一般),子类(特殊)。比如:水果和苹果的关系,苹果继承了水果,苹果是水果的子类,则苹果是一种特殊的水果。

Java的流程控制结构

2021-06-29
阅读 1 分钟
979
流程控制结构分支结构ifswitch循环结构whiledo whileforforeachJava提供了continue和break来控制循环结构。return可以结束整个方法,即,结束了一次循环。

Java中的数组类型

2021-06-29
阅读 1 分钟
1k
数组中的元素类型是唯一的,只能存储一种类型,不能存储多种类型数据。数组是一种引用类型。定义数组 {代码...} 初始化数组静态初始化初始化时,由程序员显示指定每个数组元素的初始值,由系统决定数组的长度。 {代码...} 动态初始化初始化时,程序员只指定数组长度,由系统为数组元素分配初始值。整数类型(bype、short...