java基础部分知识总结
撰写本文的目的是给大家分享一些使用java的经验,主要涉及一些基本java知识点。因此,我希望与刚刚起步的Java程序员和打算进入Java开发行业的准新手一起分享。当然对于打算进入java的新手呢,建议大家可以先看看书
和视频
这样对java有个最基础的了解打好基础对以后学习java是有很大帮助的。
我希望可以有帮助到大家,让大家更好地学习和使用Java。

1.Java的运行(基础必备)
这条可能出看很简单,java程序的运行谁不会呢?不过很多时候, 我们只是单纯通过IDE去执行java程序,底层IDE又是如何执行java程序呢?很多人并不了解。
这个知识点是最最基本的java开发者需要掌握的,初学java,第一个肯定是教你如何在命令行中执行java程序,但是很多人一旦把java学完了,IDE用上了,就把这个都忘了。为什么强调要知道这个呢,知道了java最纯粹的启动方式之后,你才能在启动出问题的时候,去分析当时启动的目录多少,执行命名如何,参数如何,是否有缺失等。 这样有利于你真正开发中去解决那些奇奇怪怪的可能和环境相关的问题。
在这里需要掌握的知识有:
javac 编译java文件为 class 文件
2.集合框架
这个是一个需要多加掌握的部分,做java开发,可以说没有不用到集合框架的,这很重要。但是这里的知识点并不难,但是对于集合最好要了解内部的实现方式,因为这样有助于你在各个不同的场景选择适合的框架来解决问题,比如有1W个元素的集合,经常要进行contains判断操作,知道了集合的特性或者内部实现,就很容易做出正确的选择。
这里包括了如下内容(并发相关不包含在内):
集合框架的体系: 基础Collection ,Map
具体集合实现的内容, List ,Set ,Map 具体的实现,内部结构, 特殊的方法, 适用场景等
集合相关的工具类 Collections 等的用法
3.异常框架
异常在java的开发中可能没有那么被重视。一般遇到异常,直接上抛,或者随便catch一下处理之后对于程序整体运行也没有什么大的影响。不过在企业级设计开发中, 异常的设计与处理的好坏,往往就关系着这个系统整体的健壮性。一个好的系统的异常对于开发者来说,处理应该统一,避免各处散落很多异常处理逻辑;对于系统来说,异常应该是可控的,并且是易于运维的,某些异常出现后,应该有应对的方法,知道如何运维处理,所以虽然异常框架很简单,但是对于整个企业级应用开发来说,异常处理是很重要的,处理好异常就需要了解Java中的异常体系。
这部分需要掌握的知识点不多,主要就是:
异常的体系:
Throwable
Exception
RuntimeException
Error
RuntimeException 和 一般 Exception 的区别, 具体处理方法等
4.java调用对象的几种方法
(1) 用new语句创建对象,这是最常见的创建对象的方法。
(2) 还有就是这种,通过工厂方法返回对象
String emp0 = String.valueOf(23);
String emp1 = "123";
(3)运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
CreateInstance instance = (CreateInstance)Class.forname("com.create.instance.CreateInstance").newInstance();
Employee emp2 = Employee.class.newInstance()
(4)运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
objectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));Employee emp4 = (Employee) in.readObject();
(5) clone()克隆方法。
Employee emp5 = (Employee) emp3.clone();
5.接口的分类
(1) 单方法接口
以下是引用片段:
public interface Actionlistener{
public abstract void actionPerformed(ActionEvent event);
}
仅且只有一个方法,只有实现了这个接口(重写这个接口中的唯一一个方法),你才有资格去事件监听器列表里注册(参数为Actionlistener类型),当事件源变动时,自动调用这个唯一的actionPerformed方法。
(2)标识接口
是没有任何方法和属性的接口。标识接口不对实现它的类有任何语意上的要求,它仅仅表明了实现它的类属于一个特定的类型(传递)。
不推荐过多的使用标识接口。
(3) 常量接口
用Java接口来声明一些常量,然后由实现这个接口的类使用这些常量(以前在做画板的时候这么干过)。建议不要模仿这种常量接口的做法。
(4)jdbc过程
首先,需要知道使用Java开发任何数据库应用程序都需要4个主要接口:Driver,Connection,Statement和ResultSet。这些接口定义了使用SQL访问数据库的一般架构。访问数据库的Java程序主要有5个步骤,分别是:
(1)加载驱动程序。
(2)建立连接。
(3)创建语句。
(4)执行语句。
(5)处理ResultSet。
那么就简单说明这5个步骤如何实现:
(1)加载驱动程序
在连接到数据库之前,需要加载一个合适的驱动程序。
Class.forname("com.mysql.cj.jdbc.Driver");
驱动程序是一个实现接口java.sql.Driver的具体类。因为我用的数据库是MySQL,所以在括号里填com.mysql.cj.jdbc.Driver,像其他的数据库,会有不同的程序驱动类。
(2)建立连接
连接到数据库需要使用到DriverManager类中的静态方法getConnection(databaseURL),其中databaseURL是数据库在Internet上的唯一标识符。Connectionconnection=DriverManager.getConnection("jdbc:mysql://localhost/Contacts?serverTimezone=UTC", "root", "Cc229654512");
(3)创建语句
Statement的对象可以为数据库传输SQL语句用于执行,并把运行结果返回程序。一旦创建Connection对象,就可以创建执行SQL语句的语句。
Statement statement=connection.createStatement();
(4)执行语句
可以使用方法executeUpdate(String sql)来执行数据定义语言或者更新语句,可以使用executeQuery(String sql)来执行SQL查询语句。结果在ResultSet中返回。
ResultSet resultSet=statement.executeQuery("select Name, PhoneNumber, Email, QQ, Note from Contacts");
(5)处理ResultSet
结果集ResultSet可以获得表的当前行,可以使用next方法移动行,可以使用各种get方法获取当前行的值。
while(resultSet.next())
{
System.out.println(resultSet.getString(1)+"\t"+resultSet.getString(2)+"\t"+resultSet.getString(3));
}
6.多线程并发
多线程是Java中普遍认为比较难的一块。多线程用好了可以有效提高cpu使用率, 提升整体系统效率, 特别是在有大量IO操作阻塞的情况下;但是它也是一柄双刃剑, 如果用不好,系统非但提升不大,或者没有提升,而且还会带来多线程之间的调试时等问题。
在多线程中内容有很多,只是简单说明一下Java中初步使用多线程需要掌握的知识点,以后有机会单独再详细介绍一些高级特性的使用场景。
多线程的实现和启动
callable 与 runable 区别
syncrhoized ,reentrantLock 各自特点和比对
线程池
future 异步方式获取执行结果
concurrent 包
lock
7.Static
静态属性在java日常开发中也是经常使用,需要了解和 static 关键字相关的用法,还有和其他关键字的配合使用, 如是否可以和 abstract, final 等关键字联合使用。
主要需要掌握的有:
静态属性的定义,使用,以及类加载时如何初始化
静态方法的定义和使用
静态类的定义和使用
静态代码块的定义和初始化时机
8.对象和实例,对象的创建
在这方面,开发者需要了解class和instance的概念以及之间的差别, 这是java面向对象特性的一个基础。主要知识点有:
Class和 Instance 的概念
Instance 创建的过程:
无继承:分配内存空间, 初始化变量, 调用构造函数
有继承:处理静态动作, 分配内存空间, 变量定义为初始值 , 从基类->子类, 处理定义处的初始化, 执行构造方法
需要注意的点:
静态属性等从基类->子类进行初始化
默认无参构造方法相关的特性
以上也只是简单介绍了下我对于这些java基本知识点和技术点的一些看法和介绍,希望给刚刚接触Java, 或者打算从Java开发的人一些经验, 希望能够更有效率地学习和使用java, 避免走了弯路浪费了宝贵的时间。当然这其中还有很多不够完善的地方,希望大家多度指正

浙公网安备 33010602011771号