目录

1.是否可以从一个static方法内部发出对非static方法的调用?

2.Integer与int的区别?

3.Overload和Override的区别。参数列表相同,返回值不同的方法,是否是重载方法?

4.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)?

5.面向对象有哪三大特性?

6.abstract class和interface有什么区别?

7.如何理解Java中的Serialization和Deserialization。

8.String是最基本的数据类型吗?

9.如何实现字符串的反转及替换。

10.String s = new String("xyz");创建了几个字符串对象。


1.是否可以从一个static方法内部发出对非static方法的调用?

不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。

也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?

这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。

2.Integer与int的区别?

1、int是基本数据类型,Integer是包装类;

2、int的默认值是0,Interger的默认值是null;

3.Overload和Override的区别。参数列表相同,返回值不同的方法,是否是重载方法?

Overload是重载的意思,Override是覆盖的意思,也就是重写。

重载是指在一个类里,方法名相同,参数不同;

重写是指子类继承父类,子类里重新编写了父类中的同名(同参数)方法,也就是覆盖了父类的方法;

不是!因为重载必须要求参数列表不同!

4.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)?

接口可以继承多个接口。抽象类可以实现(implements)接口,抽象类是可继承具体类。

备注:只要明白了接口和抽象类的本质和作用,这些问题都很好回答。

只有记住抽象类与普通类的唯一区别就是不能创建实例对象和允许有abstract方法。

5.面向对象有哪三大特性?

1、面向对象有三大特性,分别是:封装继承多态

2、封装:面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个类中,有些属性是不希望公开的,或者说被其他对象访问的,所以我们使用private修饰该属性,使其隐藏起来;类中提供了方法(用public修饰),常用的是get、set方法,可以操作这些被隐藏的属性,其他类可以通过调用这些方法,改变隐藏属性的值!

封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。

3、继承:在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,使用extends关键字实现继承;子类中可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。

4、多态:多态就是在声明时使用父类,在实现或调用时使用具体的子类;即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性,多态增强了软件的灵活性和扩展性。这里可以举个例子,比如声明时使用的是动物类,调用时传递的是一个猫类(动物类的子类)的对象,具体执行父类里动物——吃的方法时,实际执行的是猫——吃的方法。

6.abstract class和interface有什么区别?

1、抽象类里面可以用普通方法,而接口中的方法全部都是抽象的;

2、在应用范围上来说,接口往往在程序设计的时候,用来定义程序模块的功能,方便各模块协同工作;抽象类是对相似类进行抽象,形成一个抽象的父类可供重用!

7.如何理解Java中的Serialization和Deserialization。

串行化(serialization)是指将一个对象的当前状态转换成字节流(a stream of bytes)的过程,

而反串行化(deserialization)则指串行化过程的逆过程,将字节流转换成一个对象,打回原形。

8.String是最基本的数据类型吗?

1、String是个类,不是基本数据类型;

2、基本数据类型包括byteintcharlongfloatdoublebooleanshort

9.如何实现字符串的反转及替换。

1.通过jdk自带reverse的方法

public class InvertString {

    public static void main(String[] args) {

        String a="abcde";

        StringBuilder b = new StringBuilder(a);

        System.out.print(b.reverse().toString());

    }

}

注:String类本身没有反转类,需要包装成Stringbuiler或者是StringBuffer类。

2.通过自己写循环。 

利用String.toCharArray()方法,将String转成一个char型数组,然后用数组遍历的方式从后向前遍历。

public String reverse(String s){ 

char ch[] = s.toCharArray(); 

int start = 0, end = ch.length-1; 

char temp; 

while(start<end){ 

temp = ch[start]; 

ch[start] = ch[end]; 

ch[end] = temp; 

start++; 

end--; 

} 

String s1 = String.copyValueOf(ch); 

return s1; 

} 

或者是这样

 public static String reverse2(String s) {

  int length = s.length();

  String reverse = "";

  for (int i = 0; i < length; i++)

   reverse = s.charAt(i) + reverse;

  return reverse;

 }

10.String s = new String("xyz");创建了几个字符串对象。

两个对象,要理解这个,就要知道string类的工作原理。

public class StringTest {  

    public static void main(String[] args){  

        String s1="Hello";  

        String s2="Hello";  

        String s3=new String("Hello");  

        System.out.println("s1和s2 引用地址是否相同:"+(s1 == s2));  

        System.out.println("s1和s2 值是否相同:"+s1.equals(s2));  

        System.out.println("s1和s3 引用地址是否相同:"+(s1 == s3));  

        System.out.println("s1和s3 值是否相同:"+s1.equals(s3));  

    }  

}  

输出结果:

s1和s2 引用地址是否相同:true

s1和s2 值是否相同:true

s1和s3 引用地址是否相同:false

s1和s3 值是否相同:true

其他面试题:

Java实习生常规技术面试题每日十题Java基础(八)

Java实习生常规技术面试题每日十题Java基础(七)

Java实习生常规技术面试题每日十题Java基础(六)

Java实习生常规技术面试题每日十题Java基础(五)

Java实习生常规技术面试题每日十题Java基础(四)

Java实习生常规技术面试题每日十题Java基础(三)

Java实习生常规技术面试题每日十题Java基础(二)

Java实习生常规技术面试题每日十题Java基础(一)

Java实习生常规技术面试题每日十题Java基础(三)的更多相关文章

  1. Java实习生常规技术面试题每日十题Java基础(八)

    目录 1.解释内存中的栈(stack).堆(heap)和静态区(static area)的用法. 2.怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串? 3.运行时异常与受检异常有 ...

  2. Java实习生常规技术面试题每日十题Java基础(七)

    目录 1. Java设计模式有哪些? 2.GC是什么?为什么要有GC? 3. Java中是如何支持正则表达式. 4.比较一下Java和JavaSciprt. 5.Math.round(11.5) 等于 ...

  3. Java实习生常规技术面试题每日十题Java基础(六)

    目录 1.在Java语言,怎么理解goto. 2.请描述一下Java 5有哪些新特性? 3.Java 6新特性有哪些. 4.Java 7 新特性有哪些. 5.Java 8 新特性有哪些. 6.描述Ja ...

  4. Java实习生常规技术面试题每日十题Java基础(五)

    目录 1.启动一个线程是用run()还是start()? . 2.线程的基本状态以及状态之间的关系. 3.Set和List的区别,List和Map的区别? 4.同步方法.同步代码块区别? 5.描述Ja ...

  5. Java实习生常规技术面试题每日十题Java基础(四)

    目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize ...

  6. Java实习生常规技术面试题每日十题Java基础(二)

    目录 1. JAVA 的反射机制的原理. 2.静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同? 3.如何将String类型转化成Number类型. 4.什 ...

  7. Java实习生常规技术面试题每日十题Java基础(一)

    目录 1.Java 的 "一次编写,处处运行"如何实现? 2.描述JVM运行原理. 3.为什么Java没有全局变量? 4.说明一下public static void main(S ...

  8. Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  9. java开发师笔试面试每日12题(3)

    1.JDK和JRE的区别是什么? Java运行时环境(JRE)是将要执行Java程序的Java虚拟机.它同时也包含了执行applet需要的浏览器插件.Java开发工具包(JDK)是完整的Java软件开 ...

随机推荐

  1. 零基础学习java------29---------网络日志数据session案例,runtime(导出jar程序)

    一. 网络日志数据session案例 部分数据 数据中的字段分别为: 访客ip地址,访客访问时间,访客请求的url及协议,网站响应码,网站返回数据量,访客的referral url,访客的客户端操作系 ...

  2. JS - 获取当前的时间,并且转换成年 - 月 - 日格式!

    先获取当前时间,并转换成年月日格式! function getNowFormatDate() { var date = new Date(); var seperator1 = "-&quo ...

  3. 关于finally中的语句和try中的return之间的执行顺序

    首先是第一种情况: 我们这里由于程序只是单一的,所以后面的代码只有主题部分: Public class test{ Public static void main(String[] args){ Sy ...

  4. C#编程概述(摘抄)

    C#编程概述 一个简单的C#程序 标识符 标识符是一种字符串,用来命名变量.方法.参数和许多后面将要阐述的其他程序结构. 关键字 所有C#关键字都由小写字母组成,但是.NET类型名使用Pascal大小 ...

  5. MySQL慢日志优化

    慢日志的性能问题 造成 I/O 和 CPU 资源消耗:慢日志通常会扫描大量非目的的数据,自然就会造成 I/O 和 CPU 的资源消耗,影响到其他业务的正常使用,有可能因为单个慢 SQL 就能拖慢整个数 ...

  6. AtCoder Beginner Contest 169 题解

    AtCoder Beginner Contest 169 题解 这场比赛比较简单,证明我没有咕咕咕的时候到了! A - Multiplication 1 没什么好说的,直接读入两个数输出乘积就好了. ...

  7. Git的基本使用(只是基本使用)

    git上传 1.克隆到本地 git clone + git项目地址 2.添加文件 git add * 添加所有文件到本地仓库 3.查看状态 git status 4.标记 git commit -m ...

  8. CF166A Rank List 题解

    Content 有 \(n\) 个元素,第 \(i\) 个元素包含两个值 \(a_i,b_i\),按照以下规则排序: 如果对于 \(i\neq j\) 有 \(a_i\neq a_j\),则按照 \( ...

  9. LuoguP5238 整数校验器 题解

    Content 给定两个整数 \(l,r\),再给定 \(T\) 个整数,请判断对于每个整数 \(x\),是否满足以下要求: \(x\in[l,r]\). \(x\) 格式合法. 数据范围:\(-2^ ...

  10. 超链接 a 标签点击时,弹出提示框,可以按照如下来写

    onclick="return confirm('确定删除该条记录?')" 加上这条记录后,就可以在访问href属性指向的链接时,有弹出提示