java整个程序全局变量-qt定义全局结构体变量
面试题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 对象,相等的值意味着它们包含相同的字符序列。 对于原始类型的包装类,值相等意味着对应的原始类型的值相同。
问题:如果去掉 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 块中完成。
问题:什么是 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点,多态、继承和封装。
问题:介绍继承原理
答:继承允许一个对象获得另一个对象的属性。 使用继承,可以复用经过充分测试的功能,并且可以修改一次,所有继承的地方同时生效。
问题:什么是隐式类型转换?
答:隐式类型转换是将一种类型简单地赋值给另一种类型,而不显式地告诉编译器发生了转换。 并非所有类型都支持隐式类型转换。
代码示例:
面试题NO.21-NO.25
问题:sizeof 是Java 中的关键字吗?
答:没有。
问题:什么是原生方法?
答:本地方法是由非 Java 代码实现的方法。
问题:在System.out.println()中,System、out、println分别是什么?
答:System是系统提供的一个预定义的final类,out是一个PrintStream对象,println是out对象中的一个重载方法。
问题:什么是封装、继承和多态?
答:简单的说,多态就是一个名字的多种实现。 多态性使实体能够以通用方式实现不同的操作。 具体操作以实际执行为准。
多态性在Java中有三种表现形式:方法重载通过继承方法重写通过Java接口方法重写。
问题:什么是显式类型转换?
答:显式类型转换就是显式地告诉编译器进行对象转换。
代码示例:
面试题NO.26-NO.30
问题:什么是 Java 虚拟机?
答:Java虚拟机是一个可以移植到不同硬件平台的软件系统。
问题:什么是类型向下转型?
答:向下转型是指从通用类型到特定类型的转换,在继承结构上向下进行。
问题:Java 中的访问修饰符是什么?
答案:访问修饰符是指示类成员访问类型的关键字。 使用这些关键字来限制对程序方法或变量的访问。 他们包含:
public:所有类都可以访问 protected:同一个包,所有子类都可以访问
问题:所有类的父类是什么?
答:对象。
问: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有两种类型转换方式,一种是显式类型转换,一种是隐式类型转换。
面试题NO.46-NO.50
问题:main方法的参数中,字符串数组的第一个参数是什么?
答案:数组是空的,没有元素。 与 C 或 C++ 不同,第一个元素默认为程序名称。 如果在命令行中没有提供任何参数,则 main 方法中的 String 数组为空,但不为 null。
问题:如何判断数组是否为null或为空?
答:输出array.length的值,如果为0,表示数组为空。 如果为null,则抛出空指针异常。
问题:程序中可以允许多个类同时有一个main方法吗?
答:是的。 当程序运行时,我们指定要运行的类名。 JVM 只会在您指定的类中查找 main 方法。 因此,如果多个类有main方法,就不存在命名冲突的问题。
问题:什么时候加载静态变量? 编译时还是运行时? 静态代码块加载的时机呢?
答:静态变量是在类加载器将类加载到JVM时创建的,与对象是否创建无关。 加载静态变量时分配内存空间。 静态代码块中的代码只会在类第一次初始化时执行一次。 一个类可以有多个静态代码块,它不是类的成员java整个程序全局变量,没有返回值,不能直接调用。 静态代码块不能包含this或super,通常用于初始化静态变量。
问题:一个类可以有多个main方法吗?
答:是的,但只能有一个具有以下签名的主要方法:
否则程序将无法编译。 编译器会警告你 main 方法已经存在。
面试题NO.51-NO.60
问题:简单介绍一下JVM是如何工作的?
答:JVM是一个抽象的计算机,就像一台真正的计算机一样,它们会先将.java文件编译成.class文件(.class文件是字节码文件),然后使用它的解释器来加载字节码。
问题:如果原地交换两个变量的值会怎样?
答案:先将两个值相加赋值给第一个变量,然后将结果减去第二个变量赋值给第二个变量。 第一个变量减去第二个变量,同时赋给第一个变量。 代码如下:
也可以使用异或运算进行交换。 第一种方法也可能导致溢出。 异或方法如下: int a=5,b=10;a=a+b; b=ab; a=ab;
问:什么是数据封装?
答:数据封装的一种方式是在类中创建set和get方法来访问对象的数据变量。 一般来说,变量是私有的,而 get 和 set 方法是公共的。 封装也可以用来在存储数据时进行数据校验,或者对数据进行计算,或者进行内省(比如在struts中使用javabean)。 将数据和功能封装到单个结构中称为数据封装。 封装其实就是把数据和相关的操作方法封装成一个独立的单元,这样就可以通过这些相关的方法来访问和操作数据。 封装提供了数据安全性,实际上是一种隐藏数据的方式。
问题:什么是反射API? 它是如何实现的?
答:反射是指能够在运行时查看类的状态和特性,并进行动态管理。 这些功能是通过一些内置类的反射API提供的,如Class、Method、Field、Constructors等。使用示例:使用Java反射API的getName方法获取类名。
问题:JVM会自己维护缓存,会在堆中分配对象,操作系统的堆还是JVM自己管理的堆? 为什么?
答:是的,JVM 本身通过在堆上创建对象然后在堆栈上引用这些对象来管理缓存。
面试题NO.61-NO.66
问题:什么是虚拟内存?
答:虚拟内存也叫扩展内存,没有真正的物理内存。
问题:一个方法可以同时是静态的和同步的吗?
答:是的。 如果这样做,JVM 将获取与此对象关联的 java.lang.Class 实例的锁。 这样做相当于:
问题:String 和 StringTokenizer 有什么区别?
答:StringTokenizer 是一个用来分割字符串的工具类。
输出:
问题:瞬态变量有什么特点?
答:瞬态变量没有被序列化。 比如实现了Serializable接口的类,在序列化为ObjectStream时,不会将transient类型的变量写入流中,同时反序列化回来时,对应变量的值为null。
问题:哪些容器使用 Border 布局作为它们的默认布局?
答:窗口、框架、对话框。
问题:如何理解什么是同步?
答:同步是用来控制多个线程之间共享资源的访问,保证同一时间只有一个线程可以访问资源。 在具有非同步保护的多线程程序中,当一个线程正在修改一个共享变量时,另一个线程也可能使用或更新它的值。 同步避免了脏数据的产生。
同步方法:
同步方法内的代码块:
-结尾-
新书推荐
《微课设计与制作实践课》