题记

Java的学习都是通过Google用到什么就查什么,不成系统。
虽然相比于面向对象语言C++有很大的相似性,但也有很多不同点。
本文就基于《Java语言程序设计》(基础篇)过一遍基础知识点,着重过一遍C++没有的。

知识清单

1、Java语言是区分大小写的。

2、boolean类型是Java的布尔类型,区别于C++的bool类型。
特别注意,boolean类型的判定方法同C&C++,如下:

if (even) {
}

3、字符串变量相等判定,不能使用==,而应该使用equals( )或者equalsIgnoreCase( )方法。

4、字符串和数字间的转换方法

int intValue = Integer.parseInt(intString);
double doubleValue = Double.parseDouble(doubleString);
String s = number + "";

5、方法的静态修饰符的含义?

public static int max(int num1, int num2){
}

6、每调用一个方法时,系统会创建一个活动记录(也称为活动框架),用于保存方法中的参数和变量。
活动记录置于一个内存区域中,称为调用堆栈(call stack)

7、重载方法:方法名称相同,但是参数不同。
注意:不能基于不同修饰符或返回值类型来重载方法。

8、elementType[] arrayRefVar; 声明一个数组时并不在内存中给数组分配任何空间,它只是创建了一个对数组的引用的存储位置。
double[] myList = new double[10];

数组大小:arrayRefVal.length;

数组遍历新方法:

for (double e: mylist){
System.out.println(e);
}

9、对于数组类型参数,参数值是数组的引用,给方法传递的是这个引用。
参数传递的是共享信息,即方法中的数组和传递的数组时一样的。

所以,如果改变方法中的数组,将会看到方法外的数组也变化了。

10、可变长参数列表
1)只能给方法中指定一个可变长参数,
2)参数必须是最后一个参数,任何常规参数都在它之前。

11、Java运行系统会检测垃圾并自动回收它所占用的空间,这个过程称为垃圾回收(garbage collection)

12、如何判定一个变量或方法应该是实例的还是静态的?
如果一个变量或方法依赖于类的某个实例,那它应该就可以定义为实例变量和实例方法。

相反,如果不依赖于类的某个具体实例,就应该将它定义为静态变量或静态方法。

13、给方法传递一个对象,是将对象的引用传递给方法。

14、Java提供了一个将基本数据类型并入对象或包装成对象。
例如:将int包装成Integer类,将double包装成Double类,将char包装成Character类。

15、StringBuilder、StringbBuffer类可以添加、插入、追加新内容,但是String对象一旦创建,它的值就确定了。

16、继承中,关键词super指代父类,可以用于调用父类中的普通方法和构造方法。
这点不同于C++的自动调用,父类的构造方法不会被子类继承。它们只能使用关键字super从子类的构造方法中调用。

17、重写发生在通过继承关系而相关的不同类中;
重载可以发生在同一个类中,也可以发生在由于继承而相关的不同类中。

18、Java 中的所有类都继承自java.lang.Object类。

19、Java 多态和核心:父类的变量可以指向子类对象。

20、动态绑定:方法可以沿着继承链的多个类中实现。JVM决定运行时调用哪个方法。

21、final修饰符
一个被final修饰符修饰的类和方法都不能被扩展。final修饰的类是不能有父类的。
被final修饰的数据域是一个常数。

22、异常处理
最根本的优势:将检测错误(由被调用的方法完成)从处理错误(由调用方法完成)中分离出来。

23、异常处理步骤:
1)声明异常
2)抛出异常

method2() throw Exception{
if (an error occurs){
throw new Exception();
}
}

3)捕method()

try{
invoke method2;
}catch (Exception ex){
Process exception;
}
}
try{
System.out.println(refVal.toString());}catch(NullPointerException ex){
System.out.println("refVar is null");
}

最好的方式:

if (refVal != null){
System.out.println(refVal.toString());
}else{
System.out.println("refVar is null");}

24、接口Interface
使用接口或多或少有点像使用抽象类。

public interface T{
int k = 1;  //java 允许忽略 public static final
void p();  //java 允许忽略 public abstract
}

等价于

public interface T {
public static final int k = 1;
public abstract void p();
}

不能使用new操作符创建接口的实例。

一个类可以实现多个接口,但是只能继承一个父类。
定义一个接口和抽象类有如下不同:
1)变量
抽象类变量无限制;接口——所有变量必须是public static final;

2)构造方法
抽象类——子类通过构造方法链调用构造方法,
抽象类不能用new 操作实例化。
接口——没有构造方法,接口不能用new操作符实例化。

3)方法
抽象类——无限制;
接口——所有方法必须是公用的抽象实例方法。

25、类的设计原则
1)内聚性——
类应该描述一个单一的实体,而所有的类操作应该在逻辑上相互配合,支持一个一致的目的。
2)一致性——
遵循标准Java设计风格和命名习惯。
3)封装性——
一个类应该使用private修饰符隐藏其数据,以免用户直接访问它。
4)清晰性——
方法在不产生混淆的情况下进行直观定义。
5)完整性——
类是为不同的用户的使用而设计的。
6)实例和静态——
如果一个变量被类的所有实例所共享,那就应该将它声明为静态的。
7)继承和聚合——
继承 is-a(是一种)关系;
聚合 has-a(具有)关系。
8)接口和抽象类——
is-a可以使用类的继承关系建模;
is-kind-of (是一种),可以使用接口建模。

《Java语言程序设计》(基础篇)第10版 Y.Daniel Liang

小结

语言是相通的,由于大学里没有学过Java。所以,从最早的对Java 语言抵触,到Java无从下手,到项目中使用项目近一年时间,有很大收获。

但毕竟属于遇到什么查什么,学习的不够系统。

所以,借助本清单进行了系统的查漏补缺。

Next:进阶篇——《Java进阶知识清单》

2017年09月05日 23:30 于家中床前

作者:铭毅天下
转载请标明出处,原文地址:
http://blog.csdn.net/laoyang360/article/details/77860033
如果感觉本文对您有帮助,请点击‘喜欢’支持一下,并分享出去,让更多的人受益。您的支持是我坚持写作最大的动力,谢谢!

Java基础知识清单相关推荐

  1. Java 基础知识总结(下)-王者笔记《收藏版》

    上一篇 Java基础知识学习总结之(上) 下一篇 Java 集合容器篇面试题  (上) java毕业设计项目<100套>推荐 毕设/私活/大佬必备,一个挣钱的开源前后端分离脚手架 2W字梳 ...

  2. 学习spring必须java基础知识-动态代理

    2019独角兽企业重金招聘Python工程师标准>>> Spring AOP使用动态代理技术在运行期织入增强的代码,为了揭示Spring AOP底层的工作机理,有必要对涉及到的Jav ...

  3. 学习Spring必学的Java基础知识(2)----动态代理

    Spring AOP使用动态代理技术在运行期织入增强的代码,为了揭示Spring AOP底层的工作机理,有必要对涉及到的Java知识进行学习.Spring AOP使用了两种代理机制:一种是基于JDK的 ...

  4. Java基础知识笔记-11_2-Swing用户界面组件

    Java基础知识笔记-11_2-Swing用户界面组件 这章教程两个版本,一个语法是非lambda表达式版本,另一个是lambda表达式版本 非lambda表达式版本 1 Java Swing概述 J ...

  5. java 反射类 spring_学习Spring必学的Java基础知识(1)----反射

    引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩".以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系 ...

  6. 学习Spring必学的Java基础知识

    学习Spring必学的Java基础知识(1)----反射 引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩".以下几项Jav ...

  7. 学习Spring必学的Java基础知识----反射

    引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩".以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系 ...

  8. Java基础看jvm,JAVA基础知识|java虚拟机(JVM)

    一.JVM简介 java语言是跨平台的,兼容各种操作系统.实现跨平台的基石就是虚拟机(JVM),虚拟机不是跨平台的,所以不同的操作系统需要安装不同的jdk版本(jre=jvm+类库:jdk=jre+开 ...

  9. Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介

    1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...

  10. java 空语句_Java空语句怎么写才正确?这样的Java基础知识才是你需要的

    [摘要]在很多的高级语言中,有专门的赋值语句,我希望大家一定要了解JavaJava空语句怎么写才正确?这样的Java基础知识才是你需要的,今天小编就带大家看看Java空语句怎么写才正确?这样的Java ...

最新文章

  1. [20170206]为什么少1个段.txt
  2. mysql顺序结构_MySQL学习之流程结构
  3. innerHTML的确是好东西
  4. 中汽协谈芯片短缺:芯片价格或上涨,部分车企在明年会受较大影响
  5. 自定义异常禁用异常堆栈_如何在Mac上禁用或自定义自动更正
  6. jQuery 一些小技巧
  7. python 字典、列表、字符串 之间的相互转换
  8. https://en.wikipedia.org/wiki/Linux Foundation
  9. 中小学生应不应该学英语?
  10. Android系统在超级终端下必会的命令大全(二)
  11. Python批量下载中国大学MOOC课件
  12. java实现微信支付之扫码支付
  13. 计算机综合布线基本知识,综合布线系统基础知识学习
  14. 论文公式编号右对齐_毕业论文详细排版,看这一篇就够了!
  15. 基于JavaEE的人力资源管理系统的设计与实现任务书与开题报告
  16. python 英语词汇_【我爱背单词】用Python提炼3000英语新闻高频词汇
  17. element ui 图标样式被覆盖解决
  18. dell初始linux密码,常用设备管理口默认用户名密码汇总
  19. python可视化窗口库_Python可视化工具介绍——找到合适的库
  20. 电脑分区不小心格式化了文件恢复教程

热门文章

  1. 常见web漏洞修复方法
  2. js的this指向总结
  3. cannot re-initialize CUDA in forked subprocess.To use CUDA with multiprocessing,you must use the ‘sp
  4. 计算机提示资源管理器停止,电脑重复弹出“windows资源管理器已停止工作”怎么处理...
  5. 高级语言程序设计(c语言描述) 陆黎明 朱媛媛 练习答案,高级语言程序设计(c语言描述) 陆黎明 朱媛媛 练习答案...
  6. 移动内部疯传的11篇VoLTE学习笔记,看懂了你也是技术大神(二)
  7. android pm 列出权限,Android pm命令
  8. 48 款数据可视化分析工具大集合!
  9. 2021-3-18大学化学无机原理(3)热力学能与热力学第一定律
  10. 【TouchDesigner学习笔记与资料】