java基础题集

1.什么是java虚拟机?为什么java被称作是“平台无关的编程语言”?

  java虚拟机是一个可以执行java字节码的虚拟机进程。java源文件被编译成能被java虚拟机执行的字节码文件。

  java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其特性。

2.JDK和JRE的区别是什么?

  JRE:java运行时环境,它包括java虚拟机.java核心类库和支持文件,它不包括开发工具(JDK)-编译器,调试器和其他工具。

  JDK:java开发工具包,它是完整的java软件开发包,包含了JRE,编译器和其他的工具(比如:javaDoc,java调试器),可以让开发者开发,编译,执行java应用程序。

3.“static”关键字是什莫意思?java中是否可以覆盖(override)一个private或者是static的方法?

  “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。

  java中static方法是不能被覆盖,因为方法覆盖基于运行时动态绑定的,而static方法是在编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。

  java中也不可以覆盖private的方法,因为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不能访问到private变量或方法的,当然也不能覆盖。

4.是否可以在static环境中访问非static变量?

  static变量在java中是属于类的,它在所有的实例中的值是一样的。当类被java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

5.java支持的数据类型有哪些?什么是自动拆装箱?

  (1)byte

  (2)short

  (3)int

  (4)long

  (5)float

  (6)double

  (7)boolean

  (8)char  自动装箱时java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把int转化成integer,double转化成Double...,反之就是自动拆箱。

6.java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?、

 java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。

7.java中,什么是构造方法?什么是构造方法重载?什么是复制构造方法?

  当新对象被创建的时候,构造方法会被调用。每一个类都有构造方法。在程序员没有给类提供构造方法的情况下,Java编译器会为这个类创建一个默认的构造方法。
  Java中构造方法重载和方法重载很相似。可以为一个类创建多个构造方法。每一个构造方法必须有它自己唯一的参数列表。
  Java不支持像C++中那样的复制构造方法,这个不同点是因为如果你不自己写构造方法的情况下,Java不会创建默认的复制构造方法。
8.java支持多继承吗?

   java中类不支持多继承,只支持单继承(即一个类只有一个父类)。 但是java中的接口支持多继承,,即一个子接口可以有多个父接口。(接口的作用是用来扩展对象的功能,一个子接口继承多个父接口,说明子接口扩展了多个功能,当类实现接口时,类就扩展了相应的功能)。

9.接口和抽象类的区别是什么?

  java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。

  类可以实现很多个接口,但是只能继承一个抽象类类可以不实现抽象类和接口声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。

  抽象类可以在不提供接口方法实现的情况下实现接口。Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。

  Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含main方法的话是可以被调用的。

10.什么是值传递和应用传递?

  值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.

  引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。 
  一般认为,java内的传递都是值传递. java中实例对象的传递是引用传递

  

  

原文地址:https://www.cnblogs.com/youdiaodaxue16/p/9141591.html

时间: 2024-10-08 16:05:38

java基础题集的相关文章

【原创】这道Java基础题真的有坑!我也没想到还有续集。

前情回顾 自从我上次发了<这道Java基础题真的有坑!我求求你,认真思考后再回答.>这篇文章后.我通过这样的一个行文结构: 解析了小马哥出的这道题,让大家明白了这题的坑在哪里,这题背后隐藏的知识点是什么. 但是我是万万没想到啊,这篇文章居然还有续集.因为有很多读者给我留言,问我为什么?怎么回事?啥情况? 问题片段一:到底循环几次? 有很多读者针对文章的下面的这个片段: 来问了一些问题:为什么会循环三次?循环二次?循环一次? 源码看的脑袋疼.那我觉得我需要"拯救"一下这个哥们

四道Java基础题

一.==符的使用 首先看一段比较有意思的代码 Integer a = 1000,b=1000; Integer c = 100,d=100; public void mRun(final String name){ new Runnable() { public void run() { System.out.println(name); } }; } System.out.println(a==b); System.out.println(c==d); 如果这道题你能得出正确答案,并能了解其中

转载 java基础题(面试必知)

1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派生类可以从它的基类那

Java基础题十道2

1 collection与collections的有什么区别? java.util.Collection 是一个集合接口.它提供了对集合对象进行基本操作的通用接口方法. Collection接口在Java 类库中有很多具体的实现. Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式. java.util.Collections 是一个包装类.它包含有各种有关集合操作的静态多态方法. 此类不能实例化,就像一个工具类,服务于Java的Collection框架. package

Java基础题

1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 答:可以包括多个类:限制:一个文件只能有一个public类,且与文件名同名. 2.Java有没有goto? 答:没有. 3.说说&和&&的区别. 答:两者都是(and)逻辑运算符,&是非短路,&&是短路的. 4.在JAVA中如何跳出当前的多重嵌套循环? 答:1.return 2.循环语句定义一个标签,再使用带有标签的break语句. 5.switch语句能否作用

算法和数据结构基础题集(持续更新中)

 注意一题多解,举一反三,从普通算法到最优算法 1.判断一个字符串中的字符是否唯一(即没有重复),不能使用额外的数据结构(使用基本的数据结构) 2.反转一个字符串 3.去掉字符串中的重复字符,不能使用额外的缓存空间 4.判断两个字符串是否是变位词(两个单词字符相同,但是位置不同的单词) 5.写一函数,把字符串的空格替换为%20 6.判断字符串是否是另一个字符串的字串 7.从一个未排序的链表去除重复的项,不允许使用临时的缓存 8.从一个单链表中返回倒数第k个元素 9.删除链表中的给定节点 10

java基础 题和知识点总结, 关于String s是否默认初始化为null......,new一个对象和类静态域,是不是在内存中不是一个地方

一道笔试题 22. 下面代码的运行结果为:() import java.io.*; import java.util.*; public class foo{ public static void main (String[] args){ String s; System.out.println("s=" + s); } } A 代码得到编译,并输出“s=” B 代码得到编译,并输出“s=null” C 由于String s没有初始化,代码不能编译通过 D 代码得到编译,但捕获到 N

java水题集

POJ - 1220 进制转换 1 import java.io.*; 2 import java.util.*; 3 import java.math.*; 4 5 public class Main { 6 public static int GetNum(char c) 7 { 8 if (Character.isDigit(c))return c-'0'; 9 if (Character.isUpperCase(c))return c-'A'+10; 10 if (Character.i

java错题集

1.reponse可以得到,但浏览器提示No message body writer has been found for... restapi中没有加下面这个. @Path("/")@Produces({ MediaType.APPLICATION_JSON })@Consumes({ MediaType.APPLICATION_JSON })