1. 接口的实现类中的实现接口中的抽象方法的方法必须为public,为什么?

接口中所有的方法与变量都默认是 public 的,在接口中可以不写出来。但在实现类中,如果不明写的话,就变成了 friend  的了,也就是 “包访问权限”。而JAVA又规定,在实现接口或者覆写父类方法时,不能降低父类方法的访问权限,但是可以提高。也就是可以按照  friend protected public 来提高访问权限,但不能按照 public protected friend 来降低访问权限。

  反证法: 接口实现方法不是定义公开的 你调用接口怎么找到并运行内部方法

2. 接口是抽象方法和常量值的定义的集合.

  接口可以看成是一种特殊的抽象类,即抽象类中可以有非抽象方法,但是接口中的方法只能是public abstract类型的.

  接口中的变量默认是以public static final标识的。

  实现一个接口就要实现该接口的所有方法(抽象类除外).

3. 在java中,设计接口的目的是为了让类不必受限于单一继承的关系,而可以灵活的同时继承一些共有的特性,从而达到多重继承的目的,并且避免了C++中多重继承所产生的问题。多重继承的危险性在于一个类有可能继承了同一个方法的不同实现,对接口来讲绝对不会发生这种情况,因为接口没有任何实现。

4. 一个类可以在继承一个父类的同时,实现一个或多个接口,extends关键字必须位于implements关键字之前。

5. Object类中的equals方法,用于比较两个对象是否相等,默认值为false。由于类的继承特性,可以在任何类中使用这个equals方法,但返回值总是false,比较的结果就不一定准确,因此,自定义类中必须覆盖Object类中的equals方法。比如,java.lang.String类中的equals方法就进行了重写.

6. 强制转换前要使用instanceof操作符进行下判断,否则可能会抛出ClassCastException.

7. 同一个包中的类不必位于同样的目录,如org.it315.Class1与org.it315.Class2, 完全可以一个位于c盘某个位置,另一个位于d盘某个位置,只要classpath分别指向着两个位置就可以了.

8. javac -d . Abc.java 和 javac Abc.java的区别

  二者都是将Abc.java编译到当前目录,区别在于java -d . 会根据java源文件中的package语句自动创建指定目录。

9. Java的命名习惯

  包中的字母一律小写

  类名、接口名,使用名词,每个单词的首字母大写

  方法名,第一个单词小写,后面每个单词的首字母要大写

  变量名,第一个单词小写,后面每个单词的首字母要大写

  常量名中的每个字母一律大写

10. 在命令行设置classpath时不能使用绝对路径

  例如: 在当前的classpath中加入abc.jar,

      set classpath=%classpath%;c:\abc.jar

11. jar就是java archive file, 只要classpath中包含这个jar文件,java虚拟机就能自动在内存中解压这个jar文件,把这个jar当作一个目录,在这个jar文件中去寻找所需要的类及包名所对应的目录结构。

  jar的优点:一方面可以方便我们管理大量的类文件,另一方面,进行了压缩也减少了文件所占的空间。

12. 基础jar命令:

  jar cf test.jar test, 将当前路径下的test目录打包成test.jar

  jar cvf test.jar test, 作用同上,加上参数v可以显示出打包过程的详细信息。

  jar tvf test.jar, 显示出jar文件中包含的所有目录和文件列表,带上v可以显示出各目录和文件的大小,创建时间等详细信息。

  jar xvf test.jar,解压jar文件至当前目录,带上v可以显示解压过程的详细信息。

  jar tvf test.jar > c:\rt.txt,使用dos的重定向将屏幕上的内容输出到一个文件中,因为控制台的缓存空间有限,信息太多的话,前面的信息就被后面的覆盖了

13. java -verbose命令可以显示出类加载器的加载过程.

14. 在dos命令窗口中快速进入某个目录

  cd 目录名, 如果目录的名称比较长,可以只输入目录名中的部分字符,其他字符用*替代。

15. JVM运行过程

Java基础复习(六)的更多相关文章

  1. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  2. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  3. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  4. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  5. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

  6. Java基础复习笔记基本排序算法

    Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...

  7. 《Java基础复习》-控制执行流程

    最近任务太多了,肝哭我了,boom 参考书目:Thinking in Java <Java基础复习>-控制执行流程 Java使用了C的所有流程控制语句 涉及关键字:if-else.whil ...

  8. 《Java基础复习》—常识与入门

    突然发现自己Java基础的底子不到位,复习! 所记知识会发布在CSDN与博客网站jirath.cn <Java基础复习>-常识与入门 一.Java语言的知识体系图 分为三部分 编程语言核心 ...

  9. Java基础复习之数组

    Java基础复习之:数组 简介 数组(Array):多个相同数据类型按照一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理 一维数组 一维数组的声明与初始化 int[] id ...

随机推荐

  1. 编写Java程序,应用客户端和服务端通过 Eclipse 控制台的输入和显示实现简易的聊天功能

    查看本章节 查看作业目录 需求说明: 应用客户端和服务端通过 Eclipse 控制台的输入和显示实现简易的聊天功能 实现思路: 创建 Java 项目,在项目中创建服务端类 ChatServerThre ...

  2. 从零开始学springboot-2.配置项目

    ### 配置项目 #### 将application.properties改名为application.yml #### 在resources文件夹中(和上面那个配置文件同一路径下)新建一个文件app ...

  3. Ubuntu16.04下,rabbimq集群搭建

    rabbitmq作为企业级的消息队列,功能很齐全,既可以作为单一的部署模式,又可以做集群的部署模式 单一部署就不说了,就是在一台服务器上部署rabbitmq消息队列,可以参考我的博客:Ubuntu16 ...

  4. golang strings.Split函数

    golang strings.Split函数 https://play.studygolang.com/ package main import ( "fmt" "str ...

  5. 去掉所有包含this或is的行

    题目描述 写一个 bash脚本以实现一个需求,去掉输入中含有this的语句,把不含this的语句输出 示例: 假设输入如下: that is your bag is this your bag? to ...

  6. 学习Layui笔记-父窗口获取子窗口的radio

    最近学习layui,使用radio做单项选择的时候,发现layui无论怎么取值,都是默认取到第一个radio的值. 百度下找解决方法. html页面部分 <div class="lay ...

  7. 利用代码生成工具Database2Sharp生成ABP VNext框架项目代码

    我们在做某件事情的时候,一般需要详细了解它的特点,以及内在的逻辑关系,一旦我们详细了解了整个事物后,就可以通过一些辅助手段来提高我们的做事情的效率了.本篇随笔介绍ABP VNext框架各分层项目的规则 ...

  8. 灵雀云新一期DevOps认证培训圆满结束,下期学员招募同步开启

    近日,灵雀云最新一期EXIN DevOps认证培训在北京圆满结束,来自某知名运营商领域ISV的近40名学员以百分百的通过率为此次培训画上圆满的句号. 灵雀云是国内首家在DevOps培训领域与EXIN合 ...

  9. 一条 Git 命令减少了一般存储空间,我的服务器在偷着笑

    元旦不是搭建了一个<Java 程序员进阶之路>的网站嘛,其中用到了 Git 来作为云服务器和 GitHub 远程仓库之间的同步工具. 作为开发者,相信大家都知道 Git 的重要性.Git ...

  10. .NET下如何拦截鼠标、键盘消息?Win32NET来帮你

    Win32NET是一个Win32API的.NET下封装的类库,包含: 1: 常用win32的API的net封装 2:鼠标.键盘.热键hook钩子模块, 3:模拟键盘输入文字(支持各种字符文字.不同语言 ...