CoreJava面试总结

1、谈谈Java 的跨平台性

答案:java的跨平台性也被称为可移植性、平台无关性、或者一次编写处处运行。意识是编写一个应用,可以在不同的平台上运行,那之所以能实现跨平台的特性,主要得益于java虚拟机(JVM),JVM解释器在运行java应用时根据当前平台进行解释,解释成符合当前平台规范的机器码。java的语言执行机制就是先编译后解释,将代码编程成字节码文件(.class),经过解释器解释运行(.class文件平台中立)。

2、java语言的主要特点

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

(2)、面向对象

(3)、先编译,后解释:将代码先编译成字节码文件,经过解释器解释运行

(4)、自动回收:自动回收垃圾

 3、java类中包含哪几个元素?并说明每种元素的作用。

答案:java类中主要包含:属性、方法、构造方法、块、内部类。

          属性:定义对象数据

          方法:定义对象行为

         构造方法:创建对象

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

         内部类:能访问外部类的属性和方法

        

             静态内部类是指被声明为static的内部类,他可以不依赖内部类而实例,
             而通常的内部类需要实例化外部类,从而实例化。静态内部类不可以
             与外部类有相同的类名。
不能访问外部类的普通成员变量,但是可以访
             问静态成员变量和静态方法(包括私有类型) 


           一个 静态内部类去掉static 就是成员内部类,他可以自由的引用外部类的属性和方法,无
           论是静态还是非静态。但是
不可以有静态属性和方法、.


           局部内部类 就是定义在一个代码块的内类,他的作用范围是所在代码块,是内部类中
           最少使用的一类型。局部内部类跟局部变量一样,不能被public ,
           protected,private以及static修饰
只能访问方法中定义final类型的局部变量

 
          匿名内部类是一种没有类名的内部类,不使用classextends,implements,

          没有构造函数,他必须继承其他类或实现其他接口
         匿名内部类的好处是使代码更加简洁,紧凑,但是带来的问题是易读性下降。
         他一般应用于GUI编程来实现时间处理等 。 
         在使用匿名内部类时,需要牢记以下几个原则。 
         1》内部类没有构造方法 
         2》匿名内部类不能定义静态成员,方法和类 
         3》匿名内部类不能是public protected private static 
         4》只能创建匿名内部类的一个实例 
         5》一个匿名内部类可以在new后面,这个匿名类必须继承一个父类或实现接口 
         6》因为匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效

4、构造方法作用和特征

答案:作用:用来创建对象

           特征:a、构造方法的名字必须和类名一致且大小写敏感

                      b、构造方法不能声明返回值类型

                      c、允许重载

                     d、不允许手动调用

 

5、重载(overload)和覆盖(override)

方法的重载:在一个类中定义了多个相同名字的方法

                    a、方法名相同

                    b、参数列表不同(个数、类型、顺序)

方法的覆盖:子类中定义了和父类中相同的方法

                     a、子类中方法的方法名、参数列表、返回值类型和父类一致

                     b、子类的方法访问修饰符合父类相同或是比父类更宽

                     c、子类抛出的异常不能比父类更宽或更多

6、访问修饰符

                     

7、八种基本数据类型

数据类型 关键字 所占内存空间 取值范围 字面值
整数 byte 1B -128~127 整数
  short 2B -32768~32767 整数
  int 4B -2147483648~2147483647 整数
  long 8B -9223372036854775808~9223372036854775807 整数 尾端+L
小数 float 4B -3.403E38~3.403E38 小数 尾端+F
  double 8B -1.798E308~1.798E308 小数(都支持科学计数法)
布尔 boolean 1B ture~false(真/假) 一般用于逻辑判断
字符 char 2B 0~65535(无符号)
unicode(万国码)包括ASCII编码(美国标准信息交换码)
unicode中每个字符都对应一个十进制整数,从而可以使用多种方式赋值
char c = 'A';(直观)
char c = 65; (可以计算)
char c = '\u0041';(更标准)

             自动类型提升

                  两个操作数的数据类型不同时结果会以较大的数据类型为准
                 1)两个操作数有一个为double ,运算结果为 double 
                 2)没有double出现float,运算结果为float 
                 3)没有float出现long,运算结果为long 
                4)没有long出现int,运算结果为int 
                5)除long类型外,其余整数类型运算结果均为int
                 注意:任何类型遇到String,结果均为String         

基本数类型的-包装类型

基本数据类型                    包装类

  byte (1B)                      Byte

  short (2B)                     Short

  int (4B)                       Integer

  long (8B)                      Long

  float (4B)                     Float

  double (8B)                    Double

  char (2B)                      Character

  boolean(true/false)            Boolean

switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String上?
从 Java 5 以前   switch(expr)中,expr 只能 byte、short、int、char
从 Java 5 开始,Java 中引入了enum 枚举类型,expr 也可以是 enum 类型。
从 Java 7 开始,expr 还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。

缓冲区【面试难点】(是包装类型的数据)

JVM为了提高运行效率,对

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值