`

JAVA 基础的基础知识问答

    博客分类:
  • java
阅读更多

原创   JAVA 基础的基础知识问答 收藏

<script type="text/javascript"> document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData(&quot;text&quot;); if (text &amp;&amp; text.length&gt;300) { text = text + &quot;\r\n\n本文来自CSDN博客,转载请标明出处:&quot; + location.href; clipboardData.setData(&quot;text&quot;, text); } }, 100); } } </script><script class="blogstory">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&amp;u='+escape(d.location.href)+'&amp;c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

1、Java的分类有哪些?
   JavaSE  ---> j2SE      主要开发单机或局域网内的应用程序
   JavaEE  ---> j2EE      开发基于Internate互联网应用程序
   JavaME  ---> j2ME      开发嵌入式应用程序,比如手机程序
  
2、C++是一套面向对象的语言,Java是一套完全面向对象的语言,为什么说java是完全的呢?
   C++中main方法在类外面定义,是独立的所以C++不是完全面向对象的
   Java的main方法定义在类的内部被类所封装所以java是完全面向对象的
  
3、OOP指的是什么?
   OOA 表示面向对象的设计  OOP表示面向对象的编程
  
4、JDK的配置有几个环境变量?分别是什么?
   JKD的环境变量有3个分别是 java_home 、 classpath  、 path
   java_home : 用来指定JDK安装路径
   classpath : 用来指定JDK下lib目录中 dt.jar 和 tools.jar 的路径
   path : 用来指定JDK下bin目录的位置
  
5、Java中的数据类型分为几类?分别是什么?
  两种 ,8种基本数据据类型和引用数据类型
 
 
6、String是否是java基本数据类型中的?String中的split和indexOf方法的作用什么?
   不是 ,应该是引用数据类型中的
   split指定一个分隔符,将一个字符串中分隔符左右的内容存放到数组中
   indexOf 用来搜索指定字符串在原字符串中首次出现的下标索引


7、String str = new String("abc");这句代码创建出了几个Object类型的对象?分别是谁?
   ****创建了两个对象一个是"abc",又用new创建了一个对象。
      
8、String str ="abc";和String str = new String("abc");的区别是什么?
   String str ="abc";  叫做字面量赋值,先到内存中的字符串池中查找,找到相同内容直接指向
                       如果在池子中没有相同内容,将开辟新的内存空间
   String str = new String("abc");  每次运行都会开辟内存空间。                   

9、下面的程序是否能够正常运行?
    class Create_Message{
       public static void main(String[] args){
           String mess = "";
           for(int i=0;i<10000;i++){
              mess += i;
              System.out.println(mess);
           }
       }
    }
   
    可以正常运行
   
10、在 switch(type) 中 type的位置允许定义那几种数据类型?
     byte,short,int,char
    
11、请说明 break 和 continue 的区别
    break 退出当前循环体,不再进行循环。
    continue  退出当前循环体并开始下一次循环。
   
12、类和对象的区别是什么?
类:类是抽象的概念,在Java中不能够直接被使用必须创建出对象实例后才能使用
对象:对象是类的一个具体表现,也称之为类的一个实例,可以通过
      类名 对象名 = new 构造器();
      创建出一个指定类的实例,对象是可以直接使用的。

13、第9题程序运行的效率高吗?请将原因说出来?
效率不高,因为每次String类型对象重新赋值都会在内存中开辟一块新的内存空间
而循环10000次就要开辟10000个内存,而最后只会使用1个内存空间,其他的9999个内存
空间都会被java中的垃圾回收机制回收,也就是说java要对内存操作9999次的垃圾回收
在加上开辟是的10000次共19999次,所以效率不高,可以使用 StringBuffer或者StringBuilder
进行解决。

14、面向对象的三大特点是什么?
封装、继承、多态

15、方法的调用步骤是什么?
1、查看方法所在类的类名
2、创建方法所在类的对象
3、通过创建好的对象.方法名称调用
4、如果方法有返回值将接收返回值,如果没有调用结束

16、属性和变量的区别是什么?
变量和属性的区别主要在于是否我们可以控制其访问的权限,如果将一个普通变量加上了
getter / setter 方法那么这个变量就变成了一个属性

17、Java中的访问修饰符有哪些?
public private friendly(默认) protected

18、包的作用是什么?哪个关键字是用来定义一个包?哪个关键字是用来导入一个包的?
作用是用来区分类的不同功能,还可以避免类名冲突问题
package 创建包
import 导入包

19、继承的关键字是什么?super关键字的作用是什么?this的作用是什么?super()是用来干什么的?
extends 表示继承
super表示调用父类
this表示本类的一个对象注意不能够在static中使用
super()表示调用父类的构造函数


20、介绍一下你所理解的多态性?
多态的实现有两种形式:
第一种是要求有两个或者两个以上的类构成并且这些类之间必须有继承关系,我们此时
可以在子类中继承父类的方法并通过覆盖、重写父类的方法在子类中完成不同的事情。
第二种:在一个类中将方法重载可以实现多态性,可以让我们完成不同的事情。


21、什么是方法的重载?什么是方法的覆盖?
重载:方法名称相同,但其参数列表中的参数个数及其参数类型不同,注意此处和返回值类型无关。
覆盖:当两个或两个以上类发生继承关系时,子类的方法名,返回类型,参数列表和父类中的完全
      一致时,我们说子类的方法覆盖了父类的方法。

22、Overload和Override的区别?
Overload:方法名称相同,但其参数列表中的参数个数及其参数类型不同,注意此处和返回值类型无关。
Override:当两个或两个以上类发生继承关系时,子类的方法名,返回类型,参数列表和父类中的完全
      一致时,我们说子类的方法覆盖了父类的方法。


23、介绍一下你在项目开发中对static关键字的理解。
static用在变量上: 此变量在内存中只有一个副本,可以直接通过类名调用。
static用在方法上:此方法可以直接通过类名调用,不能够使用非静态变量或者调用非静态方法,同时不能够被子类覆盖成非静态方法。
static静态块: 在类加载时执行一次,不能够使用非静态变量或者调用非静态方法。

24、介绍一下 final 关键字的作用
final用在变量上:变量变成一个常量
final用在方法上:方法不能够被子类覆盖
final用在类上:类不能够被继承如:String类

25、抽象类如何进行定义?抽象类是否可以实例化?如何实现抽象类中的方法?
abstract关键字定义
抽象类不能够被实例化
用一个普通类通过extends继承抽象类,并在子类中实现父类中所有的抽象方法。

26、接口如何定义?接口中允许写哪些东西?实现接口的关键字是什么?
interface关键字定义。
接口中只允许定义常量和方法的声明。
可以通过implements关键实现接口

27、什么是程序的可扩展性?接口的作用是什么?
在不改变原有代码的基础之上为程序增加新的功能,我们称之为程序的可扩展性。
接口的作用是用来扩展应用程序的。

28、java是否允许父类引用接收子类对象?
允许

29、接口和抽象类的区别
接口是用 interface进行定义
抽象类是通过abstract关键字定义
接口中的方法都是声明方式定义
抽象类中的抽象方法都是通过abstract关键字定义

他们都要求在子类中实现所有接口或抽象类中的声明方法和抽象方法。
注意:接口和抽象类的使用,我们遵循的原则是先考虑使用接口,如果接口不能满足在考虑使用
抽象类

30、是否可以继承String类?
不可以

31、构造器(Constructor)是否可被(override)?

32、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
可以,可以,可以

33、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会,在return之前执行

34、java中 == 和 equals的区别是什么?
==判断两端的内存地址是否相同,换句话可以用来判断==两边的对象是否是同一个对象。
equals分为两种情况:
1、两端为8种基本数据类型或String类型:比较的是值也就是内容。
2、两端为引用类型:比较的是内存地址是否相同。

35、float型float f=3.4是否正确?
不正确, float f = (float)3.4;  float f = 3.4f;

36、java中是否允许多重继承?请举例说明为什么?
不允许多继承,主要原因是为了避免C++中多重继承造成的菱形问题。

37、STRING与STRINGBUFFER的区别。(上课时曾做为一个自学内容布置过)
String 每次赋新值都会开辟一块新的内存空间
STRINGBUFFER 每次赋新值都会在原有内存空间地址上修改内容,不会重新开辟内存。
注:在JDK5.0新特性中增加了一个叫做 StringBuder的类,可以到网上查看一下相关内容

38、数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()方法
String类有length()方法

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics