JAVA 面试题及思考
====================================
=======学而时习之========================
=====================
1.
public class Test {
public static void main(String[] args) {
String str = "123";
changeStr(str);
System.out.print(str);
}
public static void changeStr(String str){
str = "abc";
}
}
关键词:java内存分配
2.
public class Test {
static boolean foo(char c) {
System.out.print(c);
return true;
}
public static void main(String[] args) {
int i = 0;
for (foo('A'); foo('B') && (i < 2); foo('C')) {
i++;
foo('D');
}
}
}
关键词:c for
3.
public class B extends A {
// here
}
class A {
protected int method1(int a, int b) {
return 0;
}
}
//Which two are valid in a class that extends class A? (Choose two)
//A. public int method1(int a, int b) { return 0; }
//B. private int method1(int a, int b) { return 0; }
//C. private int method1(int a, long b) { return 0; }
//D. public short method1(int a, int b) { return 0; }
//E. static protected int method1(int a, int b) { return 0; }
关键词:override , overload
- The public type A must be defined in its own file
- Cannot reduce the visibility of the inherited method from A
- The return type is incompatible with A.method1(int, int)
- This static method cannot hide the instance method from A
- Duplicate method method1(int, int) in type A
- 方法重载是单个类内部,通常说方法调用 a. 方法名 b. 参数
- 方法重写是继承关系中,全部相同,除了 a. 子可见度>=父可见度 b. 子final可终止继承
4.
public class Outer {
public void someOuterMethod() {
// Line 3
}
public class Inner {
}
public static void main(String[] args) {
Outer o = new Outer();
// Line 8
}
}
// Which instantiates an instance of Inner?
// A. new Inner(); // At line 3
// B. new Inner(); // At line 8
// C. new o.Inner(); // At line 8
// D. new Outer.Inner(); // At line 8
// E. new Outer().new Inner(); // At line 8
关键词:内部类
- 构造方法也是方法
- 构造方法前必须有new 修饰
- 谁调用方法:实例调用实例方法new,类调用类方法static
- 还有一种内部类叫静态内部类
5.
CREATE TABLE zxg(a VARCHAR2(10),b VARCHAR2(10))
INSERT INTO zxg VALUES('a',NULL);
INSERT INTO zxg VALUES('b','');
INSERT INTO zxg(a,b) VALUES ('c','');
INSERT INTO zxg(a,b) VALUES ('d',' ');
SELECT * FROM zxg
--1 a
--2 b 234
--3 c
--4 d
SELECT * FROM zxg WHERE b LIKE '%'
--1 b 234
--2 d
关键词:LIKE , NULL
- 关于oracle中like ‘%’ 或者 like '%%' 还有 is null ,is not null
- 长度为零的字符串即空字符串varchar2 类型时为 null
- 好比调一个方法的前提是调动者得存在
6.
//final 是形容词最终的,final 类不可以被继承,final 字段不可以被改变,final方法不可以被重写
//The type A cannot subclass the final class B
//Cannot override the final method from B
//The final field A.s cannot be assigned
//finally 是副词 try{}catch(){}finally{}
//finalize() 是方法,垃圾回收机制
关键词:final , finally , finalize
7.Controlling Access to Members of a Class
| Modifier | Class | Package | Subclass | World |
|---|---|---|---|---|
public |
Y | Y | Y | Y |
protected |
Y | Y | Y | N |
| no modifier | Y | Y | N | N |
private |
Y | N | N | N |
关于package的一个问题:
package a;
package a.b;
有父子关系吗?
在a中定义一个pckage-private 的类,该类能不能被a.b中的类访问?
答案是:不能。
需要明确package存在的意义:通过 the fully qualified name 区分不同的类。
文件夹包含关系是存放的实现,域名倒置是避免重复的实现。

8.
public class Test {
public static void main(String[] args) {
// 向上转型
Father f = new Child();
// f.mygirlfriendis();
// The method mygirlfriendis() is undefined for the type Father
System.out.println(f.name);
f.iam();
// 向下转型
if (f instanceof Child) {
Child c = (Child) f;
System.out.println(c.name);
c.iam();
c.mygirlfriendis();
}
}
}
class Father {
String name = "Father";
public void iam() {
System.out.println(this.name);
}
}
class Child extends Father {
protected String name = "Child";
public void iam() {
System.out.println(this.name);
}
public void mygirlfriendis() {
System.out.print("Xuhua");
}
}
执行结果:
Father
Child
Child
Child
Xuhua
关键词:向上转型,向下转型
- 把子类的实例赋给父类的引用
- 把指向子类的父类的引用强转为子类
- 超类作为方法的参数,目的是简化接口
9.
public static void main(String[] args) {
String s = null;
System.out.println(String.valueOf(s));
System.out.println(String.valueOf(null));
}
关键词:方法重载
10. 引用是怎么回事
| Circle c; | c | null | ||
| c = new Circle(); | c | 0x45f | → | c:Circle |
| radius:0 |
Circle c; 和 Circle c = null; 的区别
class Test {
Person person;
public void f() {
// Person xx;
// System.out.println(xx); //The local variable xx may not have been initialized
System.out.println(person);
}
}
class Person {
}
- = 代表初始化
- 成员变量不用初始化,因为会自动初始化
- 局部变量需要初始化,不然编译期间会报错
- 引用用于存储对象的地址
- 引用位于栈,对象位于堆
- 栈用于程序运行,堆用于数据存储
JAVA 面试题及思考的更多相关文章
- Java面试题汇总
第一阶段:三年我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人.这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本 上的内容迈向真正的企业级开发.我们知道如何团队 ...
- 【面试必备】常见Java面试题大综合
一.Java基础 1.Arrays.sort实现原理和Collections.sort实现原理答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSort ...
- 史上最全阿里 Java 面试题总结
以下为大家整理了阿里巴巴史上最全的 Java 面试题,涉及大量 Java 面试知识点和相关试题. JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节. String类能被继承吗,为什么 ...
- 整理+学习《骆昊-Java面试题全集(上)》
★可以关注微信公众号,了解更多技术和行业信息 2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不 ...
- Java面试题全集(上)转载
Java面试题全集(上) 2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是 ...
- Java 面试题 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 近5年常考Java面试题及答案整理(三)
上一篇:近5年常考Java面试题及答案整理(二) 68.Java中如何实现序列化,有什么意义? 答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化.可以对流化后的对象进行读写 ...
- 百度搜索 “Java面试题” 前200页(面试必看)
前言 本文中的题目来源于网上的一篇文章<百度搜索 "Java面试题" 前200页>,但该文章里面只有题目,没有答案.因此,我整理了一些答案发布于本文.本文整理答案的原则 ...
- Java面试题全集(上)
2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对 ...
随机推荐
- SQL Server 通过TSQL(存储过程)用MSXML去调用Webservice
本文为转载:原文地址 在SQL SERVER 2008 R2 上亲测可用, 这个存储过程配合SoapUI使用效果更好:参考地址 前提设置:http://www.cnblogs.com/chenxizh ...
- 分享插件的使用加一个echart走数据
html部分: <div class="topLink clearfix bdsharebuttonbox bdshare-button-style0-16" data-b ...
- Linux移植之配置过程分析
在Linux移植之移植步骤中已经将Linux移植的过程罗列出来了,现在分析一下Linux的配置过程,将分析以下两个配置过程: 1.make s3c2410_defconfig分析 2.make men ...
- 自定义标签tld的使用
在JSP中使用标签是很平常的事情,在制作自定义标签时,通常都需要写tld文件来定义标签的各种属性,对应的Java类,前缀等等.标签与tld文件紧紧相连,那么,到底应该怎么放置tld文件?在web.xm ...
- Atom打开txt文件中文乱码解决、指定文件的语法格式、win10中禁止睡眠
1.Atom中文乱码解决 首先保证打开的txt文件的编码格式为UTF-8无BOM编码格式,可以使用Notepad++更改,如下图所示: 然后再在atom中打开文件,并右键点击文件内容的任意位置,Cha ...
- POJ2349 Arctic Network
原题链接 先随便找一棵最小生成树,然后贪心的从大到小选择边,使其没有贡献. 显然固定生成树最长边的一个端点安装卫星频道后,从大到小选择边的一个端点作为卫星频道即可将该边的贡献去除. 所以最后的答案就是 ...
- APNS推送服务证书制作 图文详解教程(新)
iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...
- Nowcoder OI赛制测试2 F 假的数学题 - 斯特林公式 + 二分
Description 给定$X$, 找到最小的$N$ 使得$N! > X^X$ 数据范围: $x <= 1e11$ Solution $X^X$ 太大, 高精也存不过, 所以取对数 : ...
- MFC动态按钮的创建及其消息响应(自定义消息)
动态按钮(多个)的创建: 1.在类中声明并定义按钮控件的ID #define IDC_D_BTN 10000 2.在类的OnInitDialog()函数中动态创建按钮(建立按钮对象时最好建立对象的指针 ...
- POJ 3169.Layout 最短路
Layout Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11612 Accepted: 5550 Descripti ...