Java基础知识清单

简介: 不懂JAVA得小伙伴们不用怕,给大家带来了关于JAVA的基础知识清单,请放心学习。

题记

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

image.png

小结

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

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

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

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


作者:铭毅天下
转载请标明出处,原文地址:
http://blog.csdn.net/laoyang360/article/details/77860033

相关文章
|
7月前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
52 1
|
8月前
|
Java 调度 开发者
Java中的多线程编程:基础知识与实践
【5月更文挑战第29天】 在现代软件开发中,多线程编程是一个不可忽视的领域。特别是在Java这种广泛使用的编程语言中,掌握多线程的概念和技术对于开发高效、响应迅速的应用程序至关重要。本文将深入探讨Java多线程的核心概念、实现机制以及常见问题的解决方案。我们将从基础出发,逐步揭示如何通过多线程提升程序性能,并且讨论并发编程中的挑战和解决策略。文章的目的是为开发者提供一个清晰的多线程编程指南,帮助他们在实际项目中有效地应用这些知识。
44 3
|
8月前
|
Java 开发者
Java中的多线程编程:基础知识与实践
【5月更文挑战第26天】 在现代计算机科学中,多线程编程是一个复杂且强大的概念。Java作为一种广泛使用的编程语言,其对多线程的支持使得开发者能够创建出更为复杂、高效和响应迅速的应用程序。本文将深入探讨Java中的多线程编程,从基础概念到实际编程技巧,为读者提供全面的理解和实践指导。
|
8月前
|
监控 IDE Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第30天】 在现代软件开发中,多线程编程是提高应用程序性能和响应能力的关键。特别是在Java这样的多平台、多用途的编程语言中,掌握多线程技术至关重要。本文旨在为读者提供有关Java多线程编程的全面介绍,从基本概念到高级应用技巧,帮助初学者和有经验的开发者理解并有效使用多线程。文章不仅涉及基础理论,还包括代码示例和最佳实践,确保读者能够将知识应用于实际项目中。
|
8月前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第28天】 在现代计算机科学中,多线程编程是一个重要的概念,它允许程序同时执行多个任务。在Java中,多线程编程是通过创建并管理线程来实现的。本文将介绍Java中多线程编程的基础知识,包括线程的概念、创建和控制线程的方法,以及线程同步和通信的相关技术。通过阅读本文,读者将对Java中的多线程编程有一个全面的了解,并能在实际编程中应用这些知识。
|
8月前
|
安全 Java 数据安全/隐私保护
Java中的多线程编程:基础知识与实践
【5月更文挑战第24天】 在现代软件开发中,多线程编程是提升应用性能和响应速度的关键技术之一。Java 作为一种广泛使用的编程语言,其内置的多线程功能为开发者提供了强大的并发处理能力。本文将深入探讨 Java 多线程的基础概念、实现机制以及在实际开发中的应用。我们将从线程的创建和管理出发,逐步讲解同步机制、死锁问题以及如何利用高级并发工具有效地构建稳定、高效的多线程应用。通过理论结合实例的方式,旨在帮助读者掌握 Java 多线程编程的核心技能,并在实际项目中灵活运用。
|
8月前
|
安全 Java
Java基础知识面试总结(全面,实时更新)
Java基础知识面试总结(全面,实时更新)
|
8月前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第19天】多线程编程是Java中的一个重要概念,它允许程序员在同一时间执行多个任务。本文将介绍Java多线程的基础知识,包括线程的创建、启动和管理,以及如何通过多线程提高程序的性能和响应性。
|
8月前
|
Java
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
|
8月前
|
Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第13天】在计算机科学中,多线程是一种使得程序可以同时执行多个任务的技术。在Java语言中,多线程的实现主要依赖于java.lang.Thread类和java.lang.Runnable接口。本文将深入探讨Java中的多线程编程,包括其基本概念、实现方法以及一些常见的问题和解决方案。