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

=======学而时习之========================

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

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

Access Levels
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

no modifier (package-private)

关于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 面试题及思考的更多相关文章

  1. Java面试题汇总

    第一阶段:三年我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人.这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本 上的内容迈向真正的企业级开发.我们知道如何团队 ...

  2. 【面试必备】常见Java面试题大综合

    一.Java基础 1.Arrays.sort实现原理和Collections.sort实现原理答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSort ...

  3. 史上最全阿里 Java 面试题总结

    以下为大家整理了阿里巴巴史上最全的 Java 面试题,涉及大量 Java 面试知识点和相关试题. JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节. String类能被继承吗,为什么 ...

  4. 整理+学习《骆昊-Java面试题全集(上)》

    ★可以关注微信公众号,了解更多技术和行业信息 2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不 ...

  5. Java面试题全集(上)转载

    Java面试题全集(上)   2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是 ...

  6. Java 面试题 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  7. 近5年常考Java面试题及答案整理(三)

    上一篇:近5年常考Java面试题及答案整理(二) 68.Java中如何实现序列化,有什么意义? 答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化.可以对流化后的对象进行读写 ...

  8. 百度搜索 “Java面试题” 前200页(面试必看)

    前言 本文中的题目来源于网上的一篇文章<百度搜索 "Java面试题" 前200页>,但该文章里面只有题目,没有答案.因此,我整理了一些答案发布于本文.本文整理答案的原则 ...

  9. Java面试题全集(上)

    2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对 ...

随机推荐

  1. Cloud Foundry v2 部署及入门运维

    之前写过一个Guide for Cloud Foundry New Teamer.不过似乎已经有些过时,那会实验室主要是针对的CF v1进行的研究,现在已经全面进入V2时代了.所以更新一下关于Clou ...

  2. echarts柱形图x轴显示不全或者每隔一个不显示的问题

    问题原因可能:x轴数据间隔太小: 问题解决: 1.调整间隔属性 xAxis: { type: 'category', //坐标轴斜着显示 axisLabel: { interval:0, rotate ...

  3. Could not load file or assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not mat

    Could not load file or assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b ...

  4. JVM 堆参数调优 (四)

    堆参数调优 1.堆的结构 JAVA7 堆逻辑上分为:新生区.养老区.永久区:实际上堆只有新生区.养老区: Minor GC:轻量的垃圾回收:   Major GC(Full GC):重量级垃圾回收. ...

  5. Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted

    在java中写switch代码时,参数用的是string,jdk用的是1.8,但是还是报错,说不支持1.7版本以下的,然后查找了项目中的一些文件,打开一个文件如下,发现是1.6的版本,好奇怪啊,按照e ...

  6. DIOCP组件(Delphi IOCP)代码阅读之ADO内存表

    DIOCP组件(Delphi IOCP)代码阅读之ADO内存表 代码中有 class procedure TADOTools.loadFromStream(pvDataSet: TCustomADOD ...

  7. 枚举之后define

    经常会看到类似下边的code写法,觉得这么写没什么意义. enum { AA, BB, CC, }; #define AA AA #define BB BB #define CC CC 尝试下边代码, ...

  8. linux 软件编译问题汇总

    1.问题: fatal error: openssl/opensslv.h: No such file or directory 解决: sudo apt-get install libssl-dev ...

  9. jQuery操作(二)

    一: 操作元素 1. 属性操作 1.1 $("p").text() $("p").html() $(":checkbox").val() 1 ...

  10. JDK 规范目录

    JDK 规范目录 1.1 Java 异常处理 2.1 JDK 之 NIO 2 WatchService.WatchKey(监控文件变化) https://mp.weixin.qq.com/s/NIn2 ...