long temp=(int)3.9;

System.out.println(temp);

temp%=2;

System.out.println(temp);

3

1

View Code

Java里面类的方法名可以与类名一样,与构造函数的区别是方法有返回值,构造函数没有。

public classUserInfo {publicUserInfo(){

}publicString UserInfo(){return "adf";

}

}

这一点与net的不一样。

携程2015年面试题目:

/*** Created by qhong on 2017/2/5.*/

public classBase

{private String baseName = "base";publicBase()

{

callName();

}public voidcallName()

{

System. out. println(baseName);

}static class Sub extendsBase

{private String baseName = "sub";public voidcallName()

{

System. out. println (baseName) ;

}

}public static voidmain(String[] args)

{

Base b= newSub();

}

}

null

View Code

public classMain {public static voidmain(String[] args) {

Base b= newBase.Sub();

}

}classBase

{private String baseName = "base";publicBase()

{

System.out.println("fugou");

callName();

}public voidcallName()

{

System.out.println("fu");

System. out. println(baseName);

}static class Sub extendsBase

{private String baseName = "sub";public voidcallName()

{

System.out.println("zhi");

System. out. println (baseName) ;

}

}

}

View Code

fugou

zhinull

View Code

可以发现,父类在初始化的时候调用的callName是子类的,这个时候子类中的变量baseName只是被声明,还未被赋值,所以输出null。

构造器的初始化顺序大概是:父类静态块 ->子类静态块 ->父类初始化语句 ->父类构造函器 ->子类初始化语句-> 子类构造器

4.

public classNULL {public static voidhaha(){

System.out.println("haha");

}public static voidmain(String[] args) {

((NULL)null).haha();

}

}

输出为haha,因为null值可以强制转换为任何java类类型,(String)null也是合法的。但null强制转换后是无效对象,其返回值还是为null,而static方法的调用是和类名绑定的,不借助对象进行访问所以能正确输出。

反过来,没有static修饰就只能用对象进行访问,使用null调用对象肯定会报空指针错了。这里和C++很类似。

5.

public classMain {public static voidmain(String[] args) {newHelloB();

}

}classHelloA {publicHelloA() {

System.out.println("HelloA");

}

{ System.out.println("I'm A class"); }static { System.out.println("static A"); }

}class HelloB extendsHelloA {publicHelloB() {

System.out.println("HelloB");

}

{ System.out.println("I'm B class"); }static { System.out.println("static B"); }

}

staticAstaticB

I'm A class

HelloA

I'm B class

HelloB

View Code

这题很好,考查静态语句块、构造语句块(就是只有大括号的那块)以及构造函数的执行顺序。

对象的初始化顺序:

(1)类加载之后,按从上到下(从父类到子类)执行被static修饰的语句;

(2)当static语句执行完之后,再执行main方法;

(3)如果有语句new了自身的对象,将从上到下执行构造代码块、构造器(两者可以说绑定在一起)。

6.

public classMain {public static voidmain(String[] args) {

String s;

System.out.println("s=" +s);

}

}

开始以为会输出null什么的,运行后才发现Java中所有定义的基本类型或对象都必须初始化才能输出值。

7.

public classMain {public static voidmain(String[] args) {

Example ex= newExample();

ex.change(ex.str, ex.ch);

System.out.print(ex.str+ " and ");

System.out.print(ex.ch);

}

}classExample {

String str= new String("good");char[] ch = { 'a', 'b', 'c'};public void change(String str, charch[]) {

str= "test ok";

ch[0] = 'g';

}

}

good and gbc

View Code

值参数指的是实参的地址的拷贝,得到这个拷贝地址后,你可以通过它修改这个地址的内容(引用不变),因为此时这个内容的地址和原地址是同一地址

8.

classPeople {

String name;publicPeople() {

System.out.print(1);

}publicPeople(String name) {

System.out.print(2);this.name =name;

}

}class Child extendsPeople {

People father;publicChild(String name) {

System.out.print(3);this.name =name;

father= new People(name + ":F");

}publicChild() {

System.out.print(4);

}

}

132

解析:考察的又是父类与子类的构造函数调用次序。在Java中,子类的构造过程中必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来。但如果父类有多个构造函数时,该如何选择调用呢?

第一个规则:子类的构造过程中,必须调用其父类的构造方法。一个类,如果我们不写构造方法,那么编译器会帮我们加上一个默认的构造方法(就是没有参数的构造方法),但是如果你自己写了构造方法,那么编译器就不会给你添加了,所以有时候当你new一个子类对象的时候,肯定调用了子类的构造方法,但是如果在子类构造方法中我们并没有显示的调用基类的构造方法,如:super();  这样就会调用父类没有参数的构造方法。

第二个规则:如果子类的构造方法中既没有显示的调用基类构造方法,而基类中又没有无参的构造方法,则编译出错,所以,通常我们需要显示的:super(参数列表),来调用父类有参数的构造函数,此时无参的构造函数就不会被调用。

总之,一句话:子类没有显示调用父类构造函数,不管子类构造函数是否带参数都默认调用父类无参的构造函数,若父类没有则编译出错。

9.

classShape {publicString name;

}class Circle extends Shape implementsSerializable{private floatradius;transient intcolor;public static String type = "Circle";

}

在序列化一个Circle的对象circle到文件时,下面哪个字段会被保存到文件中?

radius

因为父类Shape没有继承Serializable,所以name不能被序列化。

静态类不管是否有transient修饰,都不能序列化

===============================================

10.String,StringBuilder,StringBuffer

package com.qhong.basic;public classStringTest {public static voidmain(String[] args) {

String str1="hello";

String str2="he"+new String("llo");

System.err.println(str1==str2);//jvm对127及其以下的特殊处理

Integer i1=1;

Integer i2=1;

System.err.println(i1==i2);

Integer i3=128;

Integer i4=128;

System.err.println(i3==i4);

}

}

Output:

false

true

false

11.

java 面试什么是类_Java 面试题代码类收集相关推荐

  1. Java面试----2018最全Redis面试题整理

    Java面试----2018最全Redis面试题整理 1.什么是Redis? 答:Redis全称为:Remote Dictionary Server(远程数据服务),是一个基于内存的高性能key-va ...

  2. Java面试宝典系列之基础面试题String、变量、类与对象、集合类、SSH(一)

    作者:egg 邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef 博客:http://blog.csdn.net/zhangerqing(转载请说明出处) ...

  3. Java面试宝典系列之基础面试题String、变量、类与对象、集合类、SSH(三)

    Java面试宝典之数据结构基础 -- 线性表篇 作者:egg 邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef 博客:http://blog.csdn. ...

  4. java的string类_Java中的String类笔记

    说明 源码 //jdk8 public final class String implements java.io.Serializable, Comparable, CharSequence { / ...

  5. 下面选项中不是开发java程序的步骤是_Java基础试题及其答案2

    Java试题 1) java程序中,main方法的格式正确的是().(选择一项) a)static void main(String[] args) b)public void main(String ...

  6. java中椭圆类_Java中的Graphics2D类基本使用的教程

    Java中的Graphics2D类基本使用的教程 Java语言在Graphics类提供绘制各种基本的几何图形的基础上,扩展Graphics类提供一个Graphics2D类,它拥用更强大的二维图形处理能 ...

  7. java源程序可以有几个主类_Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。_学小易找答案...

    [填空题]分析以下程序的执行结果 #include using namespace std; class Sample { int x; int y; public: Sample(int a,int ...

  8. java面试解决项目难题_Java转换难题者,不适合工作(或面试)

    java面试解决项目难题 一个非常艰苦的面试问题可能是这样的: int i = Integer.MAX_VALUE; i += 0.0f; int j = i; System.out.println( ...

  9. java 日期处理工具类_Java日期处理工具类DateUtils详解

    本文实例为大家分享了Java日期处理工具类DateUtils的具体代码,供大家参考,具体内容如下 import java.sql.Timestamp; import java.text.ParseEx ...

最新文章

  1. 【基础不牢地动山摇】一遍记住 Java 面试中常用的八种排序算法与代码实现!...
  2. 常考数据结构与算法:判断一个链表是否为回文结构
  3. 漫游Kafka实战篇之客户端编程实例
  4. 在活动完成之后的格式工厂下载
  5. 7-13 镖局运镖 (10 分)
  6. 测试用例又双叒叕失败了,NLP帮你
  7. nginx 启动命令_Windows环境下将Nginx安装到服务中的方法
  8. 内存分析工具 MAT 的使用
  9. Java:PULLXML解析XML(内附jar包链接)
  10. 斯坦福自然语言组的NLP及计算语言学的资料汇总
  11. 数据流分析之WorkList Algorithm
  12. Skype for business 2015 综合部署系列七:配置 Skype 边缘传输服务器
  13. MeGui原滤镜使用心得
  14. 电路单位本质与dB家族
  15. 500. Keyboard Row
  16. 【网络安全】练习与复习十二
  17. 2018省赛第九届蓝桥杯真题C语言B组第五题题解 快速排序
  18. C对接国际验证码接口DEMO示例
  19. linux 怎么看浏览器,Linux下浏览器比比看
  20. 成年人一天消耗卡路里的计算公式

热门文章

  1. 【LeetCode】3月25日打卡-Day10
  2. hdu 2197 本原串
  3. C#AE创建FeatureDataset/创建数据、集要素集
  4. 对象构造函数的原型图
  5. Python time datetime常用时间处理方法
  6. 浮动在IE6,7下的一些问题
  7. 稀疏矩阵的压缩存储--十字链表(转载)
  8. 不够优秀就不要腆着脸继续占便宜——作者:杨毅
  9. 使用ABAP delete duplicate时遇到的问题
  10. Leetcode--90. 子集Ⅱ