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运行过程

最新文章

  1. 分析恶意windows程序
  2. zend studio 常用快捷键
  3. Spring MVC 原理介绍(执行流程)
  4. MySQL错误:Every derived table must have its own alias
  5. C# 基础 知识点
  6. C#中使用REDIS
  7. CSS.04 -- 浮动float、overflow、定位position、CSS初始化
  8. Java IO(四)
  9. Jmeter函数助手
  10. spring 中常用的两种事务配置方式以及事务的传播性、隔离级别
  11. Tomcat介绍、安装jdk、安装Tomcat、配置Tomcat监听80端口
  12. 机器学习 Numpy库入门
  13. eclipse/myeclipse介绍
  14. 轻松实现Ecshop商城多语言切换
  15. HyperLogLog in Practice: Algorithmic Engineering of a State of The Art Cardinality Estimation Algorithm
  16. jpush-react-native 推送功能(Android 篇)
  17. Matlab矩阵基本操作(定义,运算)
  18. Xcode控制台命令
  19. webpack配置点记录
  20. 整合Office Web Apps至自己的开发系统

热门文章

  1. 初识python之词组截取及翻译
  2. java.exe and -classpth or -cp
  3. 关于 用 js 实现 快照功能
  4. vue3.0+vite+ts项目搭建-postcss-pxtorem 实现移动自适应(五)
  5. MATLAB绘图入门
  6. Python 为什么不设计 do-while 循环结构?
  7. Centos7下,Docker的安装与使用
  8. 淘系工程师讲解的使用Spring特性优雅书写业务代码
  9. .Net Core中自定义认证实现
  10. gin中只绑定url查询字符串