当前位置 > 主页 > 万和大讲堂 >


南京万和Java培训分享Java基础:Java的类常识(一)

2016-11-18 10:51

  本文南京万和Java培训和大家分享的是部分Java的类常识,请耐心看完,希望能帮助到大家!


  1.请解释Java语言的跨平台特性


  南京万和Java培训解析:虽然不知道什么是跨平台也可以使用Java语言进行编程,但是对于一个Java编程员来说,理解跨平台特性能够更深入掌握Java语言,所以企业中往往要求应聘者至少理解这个特性。


  参考答案:Java的跨平台特性也被称为可移植性、平台无关性,或者一次编写处处运行。他的意思就是如果用Java语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独运行开发。之所以能实现跨平台的特性。主要得益于Java虚拟机(JVM),JVM解释器在运行Java应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,所以可以实现同样的应用在不同平台上都能运行。


  2.请列举Java语言的主要特点


  南京万和Java培训解析:了解一门语言,往往从熟悉该语言的主要特点开始入手,所以企业也常常通过应聘者对Java语言特点的掌握程度而判断其语言基础是否扎实。


  参考答案:Java语言有很多特点,主要包括:


  ①跨平台性:一个应用可以不经过修改直接运行到不同的平台上。


  ②面向对象:Java语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。


  ③解释执行Java应用时,JVM中的解释器将解释类文件,生成符合当前平台的字节码。


  ④自动回收:Java应用中的垃圾回收是自动进行的,JVM中的后台线程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。


  3.请说明Java类中包含的元素?并说明每种元素的作用。


  南京万和Java培训解析:无论简单还是复杂的Java应用,都是由若干个类组成,所以类是Java应用的组成单位。了解一个类中包含的主要元素能够对类有一个清晰的认识。一个类中往往会有五种元素,即属性、方法、构造方法、块以及内部类、其实块和内部类比较少见。


  参考答案:Java类中主要包含属性、方法、构造方法、块以及内部类。


  属性用来定义对象的数据;


  方法用来定义对象的行为;


  构造方法可以用来创建对象;


  块能够用来在类加载时执行操作或者在每次实例化前执行通用操作;


  内部类作为类的一个成员存在,能够访问外部类的属性和方法。


  4.请说明构造方法的作用和特征


  南京万和Java培训解析:类是对象的模板,使用类往往都需要首先对类进行实例化,即创建对象。要创建对象必须使用new关键字调用构造方法(constructor)才能完成,构造方法中往往对属性进行实例化,也可以实现其他必要的功能,如读取属性文件等。


  构造方法有独特的特征:名字必须与类名相同且大小写敏感,而且构造方法不能声明返回值,这两个特征缺一不可。使用Eclipse工具时,可以使用菜单Generate Constructor自动生成不同的构造方法。


  参考答案:构造方法的作用是用来创建对象,使用new关键字调用。构造方法的名字必须与类的名字相同,并且大小写敏感,同时构造方法不能声明返回值类型,可以使用任意一种访问修饰符,但是不能使用其他修饰符进行修饰,如static、final、abstract等修饰符都可以修饰构造方法。


  5.什么是方法重载(overload)?


  南京万和Java培训解析:如果一个类的某个行为,会有不同的算法和逻辑,例如,Math类的计算绝对值的方法,既可以计算int类型数值的绝对值,也可以计算double类型数值的绝对值。这种情况下,每种类型都定义一个不同的方法名,如abInt、absDouble,那么类的可读性就较差,使用时,必须熟悉处理每种类型参数所对应的方法名。然而,如果使用同一个方法名,而使用不同的形式参数来区别这些方法,那么就具有很好的可读性,如abs(int i)、abs(double d)等。可读性强的代码是企业对开发人员的基本要求,方法重载能够使得代码有很好的可读性。


  参考答案:方法重载指的是在一个类中可以声明多个相同名字的方法,而方法的形式参数有区别。调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。


  6.请列举Java中权限访问修饰符


  南京万和Java培训解析:正确使用权限访问修饰符,能够有效控制类以及类成员的安全性,Java语言中有四种访问修饰符,包括public、同包、protected以及private,一般情况下,应用中的类多是public权限,属性多是private权限,方法多是public权限。


  参考答案:Java语言中有四种权限访问修饰符,即public、protected、同包以及private,public表示公共权限,即任何包中都可以访问:protected表示受保护权限,即同包中可以访问,同包中的子类可以访问:同包权限是默认权限,即不显示指明权限修饰符的时候就是同包权限,表示只有同包中可以访问:private是私有权限,表示只能在本类中访问。


  7.请列举Java中基本数据类型,并说明每种数据类型的含义及长度。


  南京万和Java培训解析:数据类型在任何一门编程语言中都是很重要的知识点,属性、方法参数、方法返回值要指定各自的数据类型。Java语言虽然是一门面向对象的语言。但是也定义了基本数据类型,基本数据类型可以直接赋值,不需要使用new关键字创建,可以直接使用运算符进行运算,编程中经常被使用,而且Java语言中的基本数据类型的长度固定,不会随着平台的不同而不同。


  参考答案:Java语言的八种基本数据类型有:byte字节型,8位长度:short短整型,16位长度,int整型,32位长度:long长整型,64位长度:float单精度浮点型。32位长度:double双精度浮点型,64位长度:char字符型,16位长度:boolean型,表示逻辑值,有true和false两个值,分别表示真和假。


  8.什么叫引用类型,引用类型和基本数据类型有什么区别?


  南京万和Java培训解析:很多初级程序员都能够理解int i=20;中的int是一种类型,称为整型。而对于类似Employee e=new Employee();这样表达式中的Employee却感觉无所适从。其实,任何一个类都是一种类型,如Employee就是一种类型,可以说变量e的类型就是Employee。Java语言中将类的类型称为引用类型,即reference type。


  可以说,除了八种基本数据类型之外的类型都是引用类型,包括API中所有的类、自定义的所有类,也包括数组。引用类型和基本数据类型的直观区别就是引用类型的变量需要使用new调用构造方法来赋值,而基本数据类型可以直接使用“=”号赋值。但是,引用类型中的String比较特殊,既可以使用new关键字赋值,也可以直接使用“=”赋值,一般情况下都使用“=”直接赋值。


  参考答案:Java语言中除了基本数据类型之外的类型,都称为引用类型。引用类型就是类的类型,所有的对象都是引用类型,包括数组对象。引用类型必须使用new调用构造方法进行赋值,引用类型的变量拥有自己的属性和方法,可以使用圆点调用自己的属性和方法。基本数据类型直接使用=号进行赋值,且没有自己的属性和方法,往往都在声明属性或方法时使用。


  9.对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?


  南京万和Java培训解析:String类型是实际工作中经常使用到的类型,从数据类型上划分,String是一个引用类型,是API中定义的一个类。所以String类型的对象可以使用new创建,例如String name=new String(“ETC”);为变量name进行赋值,值为“ETC”。然而,String类比起其他类有些特殊,可以使用“=”直接赋值,如String name=“ETC”,也是为变量name进行赋值,值为“ETC”。


  这两种赋值方式是有差别的,使用new赋值,永远都是创建一个新对象,在新的内存空间初始化了字符串的值;而使用“=”赋值,不会每次都初始化新的字符串,而是从一个“字符串实例池”中去查找有没有要赋值的字符串,如有则直接引用;如不存在,则初始化一个字符串,并放入“字符串实例池”。在实际编程中,往往使用“=”好对String类型变量进行赋值。


  参考答案:使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用new进行赋值,则每次都创建一个新的字符串。


  10.String类是一个“不可变类”,请解释“不可变类”的含义。


  南京万和Java培训解析:String类是一个不可变类,即immutable类。所谓不可变,意思是当一个字符串被初始化后,它的值就不会被改变。例如,String


  s=new String(“hello”)为将初始化一个值为hello的字符串,如果调用


  s.toUpperCase()看起来是把hello变为大写的HELLO,然而事实上并不会把已有的hello变为HELLO,而是在新的空间初始化一个HELLO字符串。也正因为有这种不可变性,所以才能支持“字符串实例池”的使用。


  参考答案:所谓的不可变类,就是当字符串初始化后,就不能够被改变。


  今天南京万和Java培训就讲这么多,明天继续.....最后,江苏万和Java培训班正在火热招生中,欢迎小伙伴们来万和试听哦!

最近开班 more>
  • 全栈开发
  • 前端基础班
  • 软件测试
  • Java大数据开发工程师
  • 云原生精英班
  • 开发课程基础班第四期
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第一期
  • Java Web UI Python
  • CISP
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCM 12C
  • OCP 19C
  • RHCE 9.0
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • vip班
  • 考试计划
  • 脱产班
  • 脱产班
  • 脱产班
  • 双休班
  • 双休班
  • 双休班
  • 双休班
  • 业余班
  • 业余班
  • 10月16日
  • 9月23日
  • 9月2日
  • 9月30日
  • 8月26日
  • 10月8日
  • 9月23日
  • 9月16日
  • 9月9日
  • 随时开课
  • 9月21日
  • 10月17日
  • 9月18日
  • 9月2日
  • 11月2日
  • 10月26日
  • 9月7日
  • ——
  • 随时开课
  • 9月26日
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入