点关注,不迷路;持续更新Java架构相关技术及资讯热文!!!
答:面向对象的特征主要有以下几个:
答:区别如下:
作用域 | 当前类 | 同包 | 子孙类 | 其他 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
不写时默认为default。
答:short s1 = 1; s1 = s1 + 1;s1+1运算结果是int 型,需要强制转换类型;short s1 = 1; s1 += 1;可以正确编译,自动类型提升。
答:goto 是java 中的保留字,现在没有在java 中使用,可能以后会使用。
答:Java 提供两种不同的类型:基本数据类型和引用类型;
int 是java 的基本数据类型,Integer 是java 为int 提供的封装类。
Java 为每个基本数据类型提供了封装类
答:&&和&都表示与时,区别是&&只要第一个条件不满足,后面条件就不再判断,而&要对所有的条件都进行判断。&还可以用作位运算符,当&操作符两边的表达式不是 boolean 类型时,&表示按位与操作两个操作数中位都为1,结果才为1,否则结果为0。
答:区别主要有两点:
答:
要点:堆,队列优先,先进先出(FIFO—first in first out)。栈,先进后出(FILO—First-In/Last-Out)。
答:Math.round(11.5)==12 Math.round(-11.5)==-11 round 方法返回与参数最接近的长整数,参数加1/2 后求其floor(向下取整)。
答:switch(ex)中,ex是一个整数表达式。因此传递给switch 和case语句的参数应该是int、short、char 或者byte。long,string 都不能作用在swtich上。
答: 2 << 3。
答:数组中没有length()这个方法,有length 属性。String中 有length()这个方法。
答:在最外层循环前加label 标识,然后用break:label 方法即可跳出多重循环。
答:构造器Constructor 不能被继承,因此不能重写Overriding,但可以被重载Overloading。
答:不对,有相同的hash code。Java中对于eqauls方法和hashCode方法是这样规定的:(1)如果两个对象相同(equals方法返回true),那么它们的hashCode值一定要相同;(2)如果两个对象的hashCode相同,它们并不一定相同。
答:String 类是final 类,故不可以被继承。
A:“beijing”==“beijing”;
B:“beijing”.equalsIgnoreCase(new String(“beijing”));
答:A 和B 。equalsIgnoreCase()方法将一个 String 与另一个 String 进行比较时,不考虑大小写。如果两个字符串的长度相等,并且两个字符串中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。equals方法和equalsIgnoreCase方法都是应用十分广泛的方法,两者之间的区别为equals方法在比较的过程中严格区分大小写,而equalsIgnoreCase方法在比较的过程中忽略大小写。
答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会变的。
答:
public String translate(String str) {
String tempStr = "";
try {
tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
tempStr = tempStr.trim();
}
catch (Exception e) {
System.err.println(e.getMessage());
}
return tempStr;
}
//欢迎加入Java高级架构进阶Qqun:963944895,私聊管理员免费领取Java架构学习视频、Java最新面试题、Java编程书籍
答:String 的长度是不可变的;StringBuffer 的长度是可变的,如果你对字符串中的内容,需要经常进行修改时,那么使用StringBuffer,如果最后需要String,可以使用StringBuffer 的toString()方法转换成String;线程安全;StringBuilder是JDK1.5发布的,它和StringBuffer本质上没什么区别,就是去掉了保证线程安全的那部分,减少了开销。运行速度快慢为:StringBuilder > StringBuffer > String通常应该优先使用StringBuilder 类,由于它不执行同步,所以速度更快。
答:方法的重写Overriding 和重载Overloading 是Java 多态性的不同表现。重写Overriding 是父类与子类之间多态性的一种表现,重载Overloading 是一个类中多态性的一种表现。如果在子类中定义的某个方法与其父类中某个方法有相同的名称和参数,我们说该方法被重写了(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们的参数个数或参数类型不同,则称为方法的重载(Overloading)。Overloaded 的方法是可以改变返回值的类型。
class A {
int a = 1;
double d = 2.0;
void show() {
System.out.println("Class A: a=" + a + "td=" + d);
}
}
class B extends A {
float a = 3.0f;
String d = "Java program.";
void show() {
super.show();
System.out.println("Class B: a=" + a + "td=" + d);
}
}
//欢迎加入Java高级架构进阶Qqun:963944895,私聊管理员免费领取Java架构学习视频、Java最新面试题、Java编程书籍
(1) 若在应用程序的main 方法中有以下语句:
A a=new A();
a.show();
则输出的结果如何?
(2) 若在应用程序的main 方法中定义类B 的对象b:
A b=new B();
b.show();
则输出的结果如何?
答:输出结果为:
1)Class A: a=1 d=2.0 ;
2)Class A: a=1 d=2.0
Class B: a=3.0 d=Java program。
答:Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中。在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式装载的,除非我们有特殊的用法,像是反射,就需要显式的加载所需要的类。JVM 中类的装载是由ClassLoader 和它的子类来实现的,Java ClassLoader是一个重要的Java 运行时系统组件。它负责在运行时查找和装入类文件的类。
答:可以,因为Java默认采用Unicode编码,一个char 占2个字节,一个汉字也是占2个字节,所以放一个中文汉字是没问题的。
答:含有 abstract 修饰符的类即为抽象类,抽象类不能创建实例,含有抽象方法的类必须定义为 abstract class。接口是一种特殊的抽象类,接口中的所有方法都必须是抽象的,接口中的方法默认定义为 public abstract 类型,接口中的成员变量类型默认为 public static final。
二者的区别:
答:Nested Class 一般是C++的说法,Inner Class 一般是JAVA的说法。 Nested class分为静态Static nested class 的和非静态的 inner class。Static Nested Class 是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
答:会;理论上Java因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是Java被广泛使用于服务器端编程的一个重要原因);然而在实际开发中,可能会存在无用但可达的对象,这些对象不能被GC回收,因此也会导致内存泄露的发生。例如Hibernate的Session(一级缓存)中的对象属于持久态,垃圾回收器是不会回收这些对象的,然而这些对象中可能存在无用的垃圾对象,如果不及时关闭(close)或清空(flush)一级缓存就可能导致内存泄露。
答:都不能。不能是native的,本地方法是由本地代码(如c代码)实现的方法,抽象方法是没有实现的,不能是synchronized的,synchronized和方法具体实现细节相关,抽象方法没有方法的实现。不能是static的,static方法是不能被覆盖的,而abstract方法正是要子类去覆盖它。
答:静态变量也称为类变量,归全类共有,它不依赖于某个对象,可通过类名直接访问;而实例变量必须依存于某一实例,只能通过对象才能访问到它。
答:不可以, 静态方法只能访问静态变量,实例方法可以访问静态变量和实例变量。
点关注,不迷路;持续更新Java架构相关技术及资讯热文!!!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。