- 博客(35)
- 收藏
- 关注
原创 12346678
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset
2022-09-18 15:36:34 263 1
原创 12345677
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb
2022-09-18 15:21:35 247
原创 12345677
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb
2022-09-18 15:20:46 365
原创 Java虚拟机篇
目录面试题虚拟机内存区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池HotSpot 的后台线程内存区域溢出分析应用垃圾收集器与内存分配策略判断对象是否已死的方法回收方法区垃圾收集算法新生代垃圾回收经典的垃圾收集器java虚拟机监控工具jpsjstatjinfojmap 和 jhatjstackjconsole类文件类文件结构双亲委派模型类初始化的时机类的生命周期
2022-05-10 15:30:14 172
原创 Java IO 篇
目录基本概念编码与解码操作系统中的IO常见I/O模型对比BIONIOIO复用模信号驱动IOAIOJava 中的网络支持java BIO(Blocking IO 阻塞)java NIO(Non-blocking/New I/O)NIO与BIO区别Proactor与ReactorRMI 远程方法调用netty基本概念Java 的 I/O 大概可以分成以下几类:磁盘操作:File 字节操作:InputStream 和 Outpu
2022-05-09 21:47:05 203
原创 java集合类
目录集合ListArrayList 部分源码CopyOnWriteArrayListLinkedListMapHashMapLinkedHashMapconcurrentHashMap实现WeakHashMapTreeMapSetHashSetLinkedHashSet实现TreeSet 实现迭代器其他面试问题如何选用集合?ArrayList 带参数及不带参数Arrays.asList() 方法hash 冲突解决方案.
2022-05-09 11:19:24 287
原创 Java基础篇
目录Java 基础基本数据类型包装类型BigDecimalStringString, StringBuffer and StringBuilderfinal 关键字static 关键字Object 通用方法equals()hashCode()toString()clone()wait、notify、notifyAll 相关封装与继承抽象类与接口抽象类接口比较super关键字重写与重载重写(Override)重载.
2022-05-09 11:12:23 132
原创 注解(内置注解与元注解)
目录内置注解元注解内置注解Java 定义了一套注解,共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.annotation 中。作用在代码的注解:@Override: 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。 @Deprecated: 标记过时方法。如果使用该方法,会报编译警告。 @SuppressWarnings: 指示编译器去忽略注解中声明的警告。作用在其他注解的注解(或者说元注解)
2022-05-08 16:47:48 112
原创 strictfp有什么作用
关键字 strictfp 是 sitict float point 的缩写,指的是精确浮点,它用来确保浮点数运算的准确性。JVM 在执行浮点数运算时,如果没有指定 strictip 关键字,此时计算结果可能会不精确,而且计算结果在不同平台或厂商的虚拟机上会有不同的结果,导致意想不到的错误。而一旦使用了 strictfp 来声明一个类、接口或者方法,那么在所声明的范围内,Java 编译器以及运行环境会完全依照 IEEE 二进制浮点数算术标准(IEEE 754)来执行,在这个关键字声明的范...
2022-05-07 14:24:47 871
原创 instanceof有什么作用
instanceof 是 Java 语言中的一个二元运算符,它的作用是判断一个引用类型的变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例,即它左边的对象是否是它右边的类的实例该运算符返回 boolean 类型的数据。常见的用法为:result = object inslaneeo class。如果 object 是 class 的一个实例,那么 instancedl 运算符返回 true;如果 objeet 不是 class 的一个实例,或者 objeet 是...
2022-05-07 13:13:09 585
原创 Volatile有什么作用
在用 Java 语言编写的程序中,有时为了提高程序的运行效率,编译器会自动对其进行优化,把经常被访问的变量缓存起来,程序在读取这个变量时有可能会直接从缓存(例如寄存器)中来读取这个值,而不会去内存中读取。这样做的一个好处是提高了程序的运行效率,但当遇到多线程编程时,变量的值可能因为别的线程而改变了,而该缓存的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致,例如,在本次线程内,当读取一个变量时,为提高存取速度,会先把变量读取到一个缓存中,当以后再取变量值时,就直接从缓存...
2022-05-07 13:05:47 331
原创 使用switch时有哪些注意事项
switch 语句用于多分支选择,在使用 switch(expr)时,expr 只能是一个枚举常量(内部也是由整型或字符类型实现)或一个整数表达式,其中整数表达式可以是基本类型 int 或其对应的包装类 Integer,当然也包括不同的长度整型,例如 short。由于 byte、short 和 char 类型的值都能够被隐式地转换为 int 类型,因此这些类型以及它们对应的包装类型都可以作为 switch的表达式。但是,long、float、double、String类型不能够隐式地转...
2022-05-07 12:55:03 548
原创 static关键字有什么作用
目录static关键字有什么作用(1) static 成员变量(2)static成员方法(3) static 代码块(4)static内部类引申:1.什么是实例变量?什么是局部变量?什么是类变量?什么是 final 变量?2.static 与 final 结合使用表示什么意思?static关键字有什么作用static 关键字主要有两种作用:第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。第二,实现某个方法或属性与类...
2022-05-07 12:26:18 12176
原创 assert有什么作用
断言(assert)作为一种软件调试的方法,提供了一种在代码中进行正确性检查的机制,目前很多开发语言都支持这种机制。它的主要作用是对一个 boolean 表达式进行检查,一个正确运行的程序必须保证这个 boolean 表达式的值为 true,若 boolean 表达式的值为 false,则说明程序已经处于一种不正确的状态下,系统需要提供告警信息并且退出程序。在实际的开发中,assert 主要用来保证程序的正确性,通常在程序开发和测试时使用。为了提高程序运行的效率,在软件发布后,asser...
2022-05-07 09:35:18 2855
原创 final ,finally和finalize有什么区别
1)final 用于声明属性、方法和类,分别表示属性不可变、方法不可覆盖和类不可被继承(不能再派生出新的子类)。final属性:被 final 修饰的变量不可变。由于不可变有两重含义:一是引用不可变:二是对象不可变。那么,final到底指的是哪种含义呢?通过一个例子来说明。package Text;import static java.lang.System.out;public class Test { public static void main(String[] args)
2022-05-07 08:56:32 301
原创 break,continue以及reture有什么区别
1)break 用于直接强行跳出当前循环,不再执行剩余代码。当循环中遇到 break 语句时,忽略循环体中任何其他语句和循环条件测试,程序控制在循环体后面的语句重新开始。所以,当多层循环嵌套,并且 break 语句出现在嵌套循环中的内层循环时,它将仅仅只是终止了内层循环的执行,而不影响外层循环的执行。2)continue 用于停止当次循环,回到循环起始处,进人下一次循环操作。continue 语句之后的语句将不再执行,用于跳过循环体中的一部分语句,也就是不执行这部分语句,而不是跳出整个循环执行下一条.
2022-05-06 21:45:17 545 1
原创 变量名有哪些规则
在 Java 语言中,变量名、函数名、数组名统称为标识符,Java 语言规定标识符只能由字母(a ~ z,A ~ Z)、数字(0 ~ 9)、下画线(_)和$ 组成,并且标识符的第一个字符必须是字母、下画线或$ 。此外,标识符也不能包含空白字符(换行符、空格和制表符)。以下标识符都是非法的。char:char 是 Java 语言的一个数据类型,是保留字,不能作为标识符,其他如 int、float等与之类似。number of book:标识符中不能有空格。3com:标识符不能以数字开头。a *
2022-05-06 21:26:01 414
原创 this与super有什么区别
Java语言中,this用来指向当前实例对象,它的一个非常重要的一个作用就是用来区分对象的成员变量与方法的形参(当一个方法的形参与成员变量的名字相同时,就会覆盖成员变量)。为了能够对this有一个更好的认知,首先创建一个类People,示例如下;class People{ String name; //正确写法 public People(String name){ this.name=name; } // 错误写法 public Peo
2022-05-06 21:13:38 93
原创 如何获取父类的类名
Java语言提供了获取类名的方法:getClass().getName(),开发人员可以调用这个方法来获取类名。代码如下:示例一package Text;public class Test { public void test(){ System.out.println(this.getClass().getName()); } public static void main(String[] args) { new Test().tes.
2022-05-06 20:49:57 829
原创 你真的了解内部类有哪些?
在 Java 语言中,可以把一个类定义到另外一个类的内部,在类里面的这个类就叫做内部类,外面的类叫做外部类。在这种情况下,这个内部类可以被看作外部类的一个成员(与类的属性和方法类似)。还有一种类被称为顶层(top -level)类,指的是类定义代码不嵌套在其他类定义中的类。需要注意的是,嵌套类(Nested Class)与内部类(Inner Class)类似,只是嵌套类是C++的说法,而内部类是 Java 的说法而已。内部类可以分为很多种,主要有以下 4 种:静态...
2022-05-06 16:46:33 529
原创 抽象类(abstract class)与接口(interface)有什么异同
常见笔试题:(@你的答案是?)1.下列关于接口的定义中,正确的是()。A. void methoda();B. public double methoda();C. public final double methoda();D. static void methoda (double d1):E. protected void methoda (double d1); F. int a;F. int a;G. int b = 1;2.下列说法中,正确的是( )。A...
2022-05-06 16:14:05 592 1
原创 Java中的clone方法有什么作用
目录clone()方法的步骤。clone方法浅复制(Shallow Clone) 深复制(Deep Clone)由于指针不仅会给开发人员带来使用上的不便,而且也是造成程序不稳定的根源,为了消除 C/C++语言的这些缺点,Java 语言取消了指针的概念,但这只是在 Java i语言中没有明确提供指针的概念与用法,而实质上每个new 语句返回的都是一个指针的引用,只不过在大部分情况下开发人员不需要关心如何去操作这个...
2022-05-05 20:52:13 220
原创 为什么Java中有些接口没有任何方法
面试题 不能用来修饰interface的有()A. private B.public C.protected D.static 由于 Java 不支持多重继承,即一个类只能有一个父类,为了克服单继承的缺点,Java语言引入了接口这一概念。接口是抽象方法定义的集合(接口中也可以定义—些常量值),是一种特殊的抽象类。接口中只包含方法的定义,没有方法的实现。接口中的所有方法都是抽象的。接口中成员的作用域...
2022-05-05 19:34:13 1109 1
原创 面试必备 什么是构造函数
面试笔试题:1.下列关于构造方法的叙述中,错误的是()A. Java 语言规定构造方法名与类名必须相同B. Java 语言规定构造方法没有返回值,但不用 void 声明C. Java 语言规定构造方法不可以重载D.Java 语言规定构造方法只能通过 new 自动调用 2.下列说法中,正确的是()A. class 中的 constructor 不可省略...
2022-05-05 19:26:45 315 1
原创 Java中的作用域有哪些 ?
面试笔试题 下面说法正确的是()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法小伙伴们可以在下面评论区留下你的答案!!!评论区有对本题的详细说明哦!!!在计算机程序中,声明在不同地方的变量具有不同的作用域,例如局部变量,全局变量等。在 Java 语言中,作用域是由花括号的位置决定的,它决定了其定义的变量名的可见性与生命周期。在 Java 语言中,变量的类型主要有 ...
2022-05-05 19:15:26 400 1
原创 Java程序初始化的顺序是怎样的 ?
在 Java 语言中,当实例化对象时,对象所在类的所有成员变量首先要进行初始化,只有当所有类成员完成初始化后,才会调用对象所在类的构造函数创建对象。Java 程序的初始化一般遵循 3 个原则(优先级依次递减):①静态对象(变量)优先于非静态对象(变量)初始化,其中,静态对象(变量)只初始化一次,而非静态对象(变量)可能会初始化多次。②父类优先于子类进行初始化。③按照成员变量的定义顺序进行初始化。即使变量定义散布于方法定义之中,它们依然在任何方法(包括构造函数)被调用之前先初始化。...
2022-05-05 19:01:16 624
原创 如何实现在 main()方法执行前输出“Hello Woria”
如何实现在 main()方法执行前输出“Hello Woria”众所周知,在 Javai语言中,main()方法是程序的入口方法,在程序运行时,最先加载的就是 main()方法,但这是否意味着 main()方法就是程序运行时第一个被执行的模块呢?答案是否定的。在 Java 语言中,由于静态块在类被加载时就会被调用,因此可以在 main()方法执行前,利用静态块实现输出“Hello World”的功能,以如下代码为例。运行结果为: Hello World1...
2022-05-05 09:22:02 367
原创 为什么需要public static void main (String[ ] args) 这个方法
public static void main (String[] args) 为Java程序的入口方法,JVM在运行程序时,会首先查找main()方法 。其中,public是权限修饰符,表明任何类或对象都可以访问这个方法,static表明main()方法是一个静态方法 ,即方法中的代码是存储在静态存储区的,只要类被加载后,就可以使用该方法而不需要通过实例化对象访问,可以直接通过类名 .main() 直接访问,JVM在启动时就是按照上述方法的签名(必须有public static 修饰,返回值为void,且
2022-05-04 22:38:25 707
原创 Java与C/C++有什么异同
Java 与C ++都是面向对象语言,都使用了面向对象思想(例如封装、继承、多态等),由于面向对象有许多非常好的特性(继承、组合等),因此二者都有很好的可重用性。需要注意的是,二者并非完全一样,下面主要介绍它们的不同点:1)Java 为解释性语言,其运行过程为:程序源代码经过 Java 编译器编译成字节码,然后由JVM 解释执行。而 C/C++为编译型语言,源代码经过编译和链接后生成可执行的二进制代码。因此,Java 的执行速度比 C/C++慢,但是 Java 能够路平台执行,而C/C++不能
2022-05-04 21:07:13 2848
原创 Java 语言有哪些特点
Sun Microsystems 公司对Java语言的描述如下:"Java is a simple,object - oriented,distributed, interpreted,robust , secure,architecture neutral , portable,high-performance,multithreaded,and dynamic language"。具体而言,Java语言可以分为几个方面的有点:1:Java为纯面向对象的语言。Java语言是一种”Everythin.
2022-05-04 18:47:15 492
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人