当前位置: 主页 > JAVA语言

java整个程序全局变量-qt定义全局结构体变量

发布时间:2023-02-09 09:27   浏览次数:次   作者:佚名

面试题NO.01-NO.05:main方法声明为private会怎样?

答:可以正常编译,但是运行时会提示“main method is not public”。

问题:在 Java 中按引用传递和按值传递有什么区别?

答:引用传递是指传递的是地址而不是值本身,值传递是传递值的副本。

问题:如果你想重写一个对象的equals方法,你还应该考虑什么?

答:哈希码。

问:Java的“一次编写,随处运行”是如何实现的?

答:Java程序会被编译成由字节码组成的类文件。 这些字节码可以在任何平台上运行,因此 Java 是平台无关的。

问题:解释public static void main(String args[])语句中各个关键字的作用

答:public:main方法是Java程序运行时最先调用的方法,因此必须对Java环境可见。 所以可见性设置为pulic。

static:Java平台在调用该方法时不会创建该类的实例,因此该方法必须声明为static。

void:main方法没有返回值。

String是命令行传入的参数类型,args是指命令行传入的字符串数组。

面试题NO.06-NO.10

问题:== 和 equals 的区别

答:== 比较两个对象在内存中是否是同一个对象,也就是说在内存中的存储位置是否相同。 两个 String 对象存储相同的值,但可能存储在内存中的不同位置。

== 比较引用,equals 方法比较内容。 public boolean equals(Object obj) 该方法由Object对象提供,可以被子类覆盖。 默认实现仅当对象与自身进行比较时才返回 true,相当于 ==。 String、BitSet、Date 和 File 都覆盖了 equals 方法。 对于两个 String 对象,相等的值意味着它们包含相同的字符序列。 对于原始类型的包装类,值相等意味着对应的原始类型的值相同。

java整个程序全局变量_键盘鼠标全局钩子程序_qt定义全局结构体变量

问题:如果去掉 main 方法的 static 修饰符会怎样?

答:程序编译正常。 NoSuchMethodError 将在运行时抛出。

问题:为什么oracle type4驱动叫thin driver?

答:Oracle 提供了一种 4 类 JDBC 驱动程序,称为瘦驱动程序。 该驱动程序包括 Oracle 自己完全用 Java 实现的 TCP/IP Net8 实现,因此它是平台无关的java整个程序全局变量,可以在运行时由浏览器下载,而不依赖于任何客户端 Oracle 实现。 客户端连接字符串使用的是TCP/IP的地址端口,不是数据库名的tnsname。

问题:引入finalize方法

答:final:常量声明。 最后:处理异常。 finalize:帮助垃圾收集。

默认情况下,接口中声明的变量是最终的。 final 类不能被继承,也就是说,它没有子类。 这样做是为了 String 和 Integer 等基本类型的安全。 这也允许编译器进行一些优化,更容易保证线程安全。 final 方法不能被覆盖。 final 变量的值不能更改。 finalize() 方法在对象被销毁和回收之前被调用。 finally,通常用于异常处理,无论是否抛出异常都会被执行。 例如,关闭连接通常在 finally 块中完成。

qt定义全局结构体变量_键盘鼠标全局钩子程序_java整个程序全局变量

问题:什么是 Java API?

答:Java API是大量提供大量有用功能的软件组件的集合,例如GUI组件。

面试题NO.11-NO.15

问题:什么是 GregorianCalendar 类?

答:GregorianCalendar 提供了对西方传统日历的支持。

问题:什么是 ResourceBundle 类?

Answer:ResourceBundle用于存放指定locale的资源,应用程序可以根据runtime locale加载这些资源,提供不同语言的显示。

问:为什么Java中没有全局变量?

答:全局变量是全局可见的,Java不支持全局可见变量的原因是:全局变量违反了引用透明原则。 全局变量会导致命名空间冲突。

问题:如何将String类型转换为Number类型?

答:Integer类的valueOf方法可以将String转Number。 这是一个代码示例:

问题:什么是 SimpleTimeZone 类?

答:SimpleTimeZone 提供公历日期支持。

面试题NO.16-NO.20

问题:while 循环和do 循环有什么区别?

答:while 结构决定下一次迭代是否应该在循环开始时继续。 do/while 结构在循环结束时用于确定是否进行下一次迭代。 do 结构至少执行一次循环体。

问题:什么是 Locale 类?

答:Locale 类用于根据语言环境动态调整程序的输出。

问:面向对象编程的原则是什么?

答:主要有3点,多态、继承和封装。

问题:介绍继承原理

答:继承允许一个对象获得另一个对象的属性。 使用继承,可以复用经过充分测试的功能,并且可以修改一次,所有继承的地方同时生效。

问题:什么是隐式类型转换?

答:隐式类型转换是将一种类型简单地赋值给另一种类型,而不显式地告诉编译器发生了转换。 并非所有类型都支持隐式类型转换。

代码示例:

qt定义全局结构体变量_键盘鼠标全局钩子程序_java整个程序全局变量

qt定义全局结构体变量_java整个程序全局变量_键盘鼠标全局钩子程序

面试题NO.21-NO.25

问题:sizeof 是Java 中的关键字吗?

答:没有。

问题:什么是原生方法?

答:本地方法是由非 Java 代码实现的方法。

问题:在System.out.println()中,System、out、println分别是什么?

答:System是系统提供的一个预定义的final类,out是一个PrintStream对象,println是out对象中的一个重载方法。

问题:什么是封装、继承和多态?

答:简单的说,多态就是一个名字的多种实现。 多态性使实体能够以通用方式实现不同的操作。 具体操作以实际执行为准。

多态性在Java中有三种表现形式:方法重载通过继承方法重写通过Java接口方法重写。

问题:什么是显式类型转换?

答:显式类型转换就是显式地告诉编译器进行对象转换。

代码示例:

键盘鼠标全局钩子程序_qt定义全局结构体变量_java整个程序全局变量

面试题NO.26-NO.30

问题:什么是 Java 虚拟机?

答:Java虚拟机是一个可以移植到不同硬件平台的软件系统。

问题:什么是类型向下转型?

答:向下转型是指从通用类型到特定类型的转换,在继承结构上向下进行。

问题:Java 中的访问修饰符是什么?

答案:访问修饰符是指示类成员访问类型的关键字。 使用这些关键字来限制对程序方法或变量的访问。 他们包含:

public:所有类都可以访问 protected:同一个包,所有子类都可以访问

问题:所有类的父类是什么?

答:对象。

qt定义全局结构体变量_java整个程序全局变量_键盘鼠标全局钩子程序

问:Java的基本类型有哪些?

答案:byte、char、short、int、long、float、double、boolean。

面试题NO.31-NO.40

问题:静态类型有什么特点?

答:静态变量是绑定在类上的,不是类的实例对象。 每个实例对象共享同一个静态变量。 换句话说,一个类的静态变量只有一个副本,不管它有多少个对象。 类变量或静态变量使用关键字 static 声明。 类变量通常用作常量。 静态变量通常通过类名访问。 这个变量在程序运行时创建,直到程序结束才会被销毁。 类变量与实例变量具有相同的作用域。 它的初始值与成员变量的初始值相同。 当变量没有被初始化时,根据它的数据类型,它会有一个默认值。 同样,静态方法是属于类的方法,而不是类对象。 它的调用不作用于类对象,也不需要创建任何类实例。 静态方法本身是final的,因为重写只发生在类实例上,静态方法绑定的是类,而不是对象。 父类的静态方法会被子类的静态方法阻塞,只要原始方法没有被声明为final。 非静态方法不能覆盖静态方法,即不能在子类中将静态方法改成实例方法。

非静态变量对于每个对象实例都有一个单独的值。

问题:&运算符和&&运算符有什么区别?

回答:当一个 & 表达式被求值时,两个操作数都会被求值,&& 更像是一个运算符的快捷方式。 当计算 && 表达式时,首先计算第一个操作数,如果第二个操作数返回 true,则计算第二个操作数。 如果第一个操作数的计算结果为假,则不计算第二个操作数。

问:Java如何处理整数上溢和下溢?

答:Java根据类型的大小,将计算结果中对应的低位字节存储到对应的值中。

问题:public static void写成static public void会怎样?

答:程序编译运行正常。

问题,声明变量和定义变量有什么区别?

答:声明一个变量我们只提供变量的类型和名称,并没有初始化它。 定义包括声明和初始化两个阶段。 字符串; 只是一个变量声明,String s = new String("bob"); 或 String s = "bob"; 是变量定义。

面试题NO.41-NO.45

问:Java 支持哪种参数传递类型?

答:Java参数都是按值传递的。 对于一个对象来说,传递的值是对该对象的引用,也就是说,原始引用的副本和参数引用都指向同一个对象。

问题:对象封装的原理是什么?

答:封装是将数据和操作数据的代码绑定到一个单元中。 这样可以确保数据安全并防止错误使用外部代码。 对象允许封装程序和数据以减少潜在的干扰。 封装的另一种理解是作为数据和代码的保护层,防止随意访问保护层外的代码。

问:你是如何理解变量的?

答:变量是程序可以访问的命名内存区域。 变量用于存储数据,随着程序的执行,存储的数据也可能发生变化。

问题:什么是数值提升?

答:数值提升是将数据从较小的数据类型转换为较大的数据类型,以进行整数或浮点运算。 在值提升的过程中,byte、char、short值都会被转为int类型。 int 类型也可以在需要时提升为 long。 long 和 float 可以转换为 double 类型。

问题:Java 中的类型转换是什么?

答:从一种数据类型转换为另一种数据类型称为类型转换。 Java有两种类型转换方式,一种是显式类型转换,一种是隐式类型转换。

qt定义全局结构体变量_java整个程序全局变量_键盘鼠标全局钩子程序

面试题NO.46-NO.50

问题:main方法的参数中,字符串数组的第一个参数是什么?

答案:数组是空的,没有元素。 与 C 或 C++ 不同,第一个元素默认为程序名称。 如果在命令行中没有提供任何参数,则 main 方法中的 String 数组为空,但不为 null。

问题:如何判断数组是否为null或为空?

答:输出array.length的值,如果为0,表示数组为空。 如果为null,则抛出空指针异常。

问题:程序中可以允许多个类同时有一个main方法吗?

答:是的。 当程序运行时,我们指定要运行的类名。 JVM 只会在您指定的类中查找 main 方法。 因此,如果多个类有main方法,就不存在命名冲突的问题。

问题:什么时候加载静态变量? 编译时还是运行时? 静态代码块加载的时机呢?

答:静态变量是在类加载器将类加载到JVM时创建的,与对象是否创建无关。 加载静态变量时分配内存空间。 静态代码块中的代码只会在类第一次初始化时执行一次。 一个类可以有多个静态代码块,它不是类的成员java整个程序全局变量,没有返回值,不能直接调用。 静态代码块不能包含this或super,通常用于初始化静态变量。

问题:一个类可以有多个main方法吗?

答:是的,但只能有一个具有以下签名的主要方法:

qt定义全局结构体变量_java整个程序全局变量_键盘鼠标全局钩子程序

否则程序将无法编译。 编译器会警告你 main 方法已经存在。

面试题NO.51-NO.60

问题:简单介绍一下JVM是如何工作的?

答:JVM是一个抽象的计算机,就像一台真正的计算机一样,它们会先将.java文件编译成.class文件(.class文件是字节码文件),然后使用它的解释器来加载字节码。

问题:如果原地交换两个变量的值会怎样?

答案:先将两个值相加赋值给第一个变量,然后将结果减去第二个变量赋值给第二个变量。 第一个变量减去第二个变量,同时赋给第一个变量。 代码如下:

java整个程序全局变量_键盘鼠标全局钩子程序_qt定义全局结构体变量

也可以使用异或运算进行交换。 第一种方法也可能导致溢出。 异或方法如下: int a=5,b=10;a=a+b; b=ab; a=ab;

java整个程序全局变量_键盘鼠标全局钩子程序_qt定义全局结构体变量

问:什么是数据封装?

答:数据封装的一种方式是在类中创建set和get方法来访问对象的数据变量。 一般来说,变量是私有的,而 get 和 set 方法是公共的。 封装也可以用来在存储数据时进行数据校验,或者对数据进行计算,或者进行内省(比如在struts中使用javabean)。 将数据和功能封装到单个结构中称为数据封装。 封装其实就是把数据和相关的操作方法封装成一个独立的单元,这样就可以通过这些相关的方法来访问和操作数据。 封装提供了数据安全性,实际上是一种隐藏数据的方式。

问题:什么是反射API? 它是如何实现的?

答:反射是指能够在运行时查看类的状态和特性,并进行动态管理。 这些功能是通过一些内置类的反射API提供的,如Class、Method、Field、Constructors等。使用示例:使用Java反射API的getName方法获取类名。

java整个程序全局变量_qt定义全局结构体变量_键盘鼠标全局钩子程序

问题:JVM会自己维护缓存,会在堆中分配对象,操作系统的堆还是JVM自己管理的堆? 为什么?

答:是的,JVM 本身通过在堆上创建对象然后在堆栈上引用这些对象来管理缓存。

面试题NO.61-NO.66

问题:什么是虚拟内存?

答:虚拟内存也叫扩展内存,没有真正的物理内存。

问题:一个方法可以同时是静态的和同步的吗?

答:是的。 如果这样做,JVM 将获取与此对象关联的 java.lang.Class 实例的锁。 这样做相当于:

java整个程序全局变量_键盘鼠标全局钩子程序_qt定义全局结构体变量

问题:String 和 StringTokenizer 有什么区别?

答:StringTokenizer 是一个用来分割字符串的工具类。

键盘鼠标全局钩子程序_qt定义全局结构体变量_java整个程序全局变量

输出:

键盘鼠标全局钩子程序_qt定义全局结构体变量_java整个程序全局变量

问题:瞬态变量有什么特点?

答:瞬态变量没有被序列化。 比如实现了Serializable接口的类,在序列化为ObjectStream时,不会将transient类型的变量写入流中,同时反序列化回来时,对应变量的值为null。

问题:哪些容器使用 Border 布局作为它们的默认布局?

答:窗口、框架、对话框。

问题:如何理解什么是同步?

答:同步是用来控制多个线程之间共享资源的访问,保证同一时间只有一个线程可以访问资源。 在具有非同步保护的多线程程序中,当一个线程正在修改一个共享变量时,另一个线程也可能使用或更新它的值。 同步避免了脏数据的产生。

同步方法:

键盘鼠标全局钩子程序_java整个程序全局变量_qt定义全局结构体变量

同步方法内的代码块:

qt定义全局结构体变量_java整个程序全局变量_键盘鼠标全局钩子程序

-结尾-

新书推荐

《微课设计与制作实践课》