• 学期总结


    这个学期我们开始学习了使用最广泛的变成语言之一——Java,它的简单性和平台无关性注定了它的地位,程序只要编写一次,就可到处运行。另Java是一个面向对象的语言,对我们而言,这意味着要注意应中的数据和操纵数据的方法,而不是严格地用过程来思考。在一个面向对象的系统中,类是数据和操作数据的方法的集合。数据和方法一起描述对象的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。从最开始认识面向对象的概念到现在的多线程,仅仅不到半年便让我享受到了码农的乐趣,下面就来大致总结一下这个学期我认为比较重要的知识点吧~

    一,Java知识

    1、基础语法:java关键字,类型转换、循环语句、方法、运算符、递归。 
    2、面向对象编程(重中之重):面向对象设计思想、对象与内存(重点)、方法重载、对象创建使用、this的使用、final的使用、super的使用、 static的使用、package和import的运用、对象转型、多态、抽象类、接口等基本的知识点。其中重点掌握有封装、继承、多态、抽象类、接口。 
    3、异常处理:try{...}catch(exception e){...}、异常的分类、finally的使用、方法异常的抛出、自定义异常。
    4、数组:基本的数组操作。二维数组的使用。
    5、常用类:string类、stringbuffer类、math类、file类等等。  
    6、容器:java.util 包下,有三个接口list、set、map,list下面有arraylist、vector、linkedlist,set下有hashset、 treeset,map 下有hashmap、hashset,当然了,还有dictionary下的
    hashtable,hashtable下的子类 properties,容器就这么一点东西。  
    7、java.io包:学过继承、多态、接口之后,容器和这一节就要用上,一开始是比较难理解,一旦理解了,通过触类旁通,其他也就是这样子学,这个io里面最典型的设计模式是:装饰设计模式,大家学习的时候也可以结合这个设计模式来学。 
    8、线程:线程的两种实现方式,synchronized关键字——同步,死锁等问题。 
    9、面向对象的语言; 
    10、一种与平台无关的语言,提供程序运行的解释环境; 
    11、一种健壮的语言(语法上没有指针,内存的申请与释放)。  面向对象的特点:封装性、继承性、多态性。

    二,java语法基础

    1、标识符,对大小写敏感,长度不限,包括字母、数字、下划线、美元符号; 
    2、关键字,全为小写;  
    3、java基本数据类型 
     (1)基本:数值型、字符型、布尔型(逻辑);  
    (2)引用:类、接口、数组。 
     数据类型转换时要注意布尔型不能转换为其他数据类型。容量小到容量大的转化为自动转化,反之为强制类型转化。 
    4、运算符,new也是一种运算符。类与对象类是客观存在的,抽象的,概念的东西。对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。
    关于类与对象的描述:类是对象的模版,对象是类的一个个体。
    Java中定义类的方法:class 类名
    用Java语法定义人类:public class Person{}
    对象的定义方法:
    (1),对象声明:类名 对象名;
    (2),对象创建 对象名 = new 类名(); new作用:分配内存空间。
    也可以合写为:类名 对象名 = new 类名();
    5、表达式和语句 
    6、分支即选择,双分支、多分枝可用switch 
    7、方法,方法的重载表示一个类中定义相同名字不同参数的多个方法,构造方法也可以重载。重写需注意:
    (1)继承是重写的前提;
    (2)重写只能改变方法体中的内容,方法名,参数列表、返回值类型都不能改变;
    (3)方法重写不能使用比被重写的方法更严格的访问权限。
    8、变量的作用  
    9、递归的调用

    三,java关键字

    (1)基本数据类型boolean、byte、char、short、int、long、float、double
    (2)访问控制private、protected、public 
    (3)与类有关的关键字class、abstract、interface、extends、implements
    (4)与对象有关的关键字new、instanceof、this、super、null
    (5)与方法有关的关键字void、return
    (6)控制语句if、else、switch、case、default、for、do、while、break、 continue
    (7)逻辑值true、false  (8)异常处理try、catch、finally、throw、throws
    (8)异常处理try、catch、finally、throw、throws
    (9)其他transient、volatile、package、import、synchronized、native、final、staticstrictfp 
    (10)停用的关键字goto、const

    1.instanceof关键字
    在java中可以使用instanceof关键字判断一个对象到底是不是哪个类的实例
    对象instanceof类→返回boolean类型
    2.接口
    接口是java中最重要的概念,接口可以理解为一种特殊的类,由全局变量和公共的抽象方法所组成。
    实现接口
    接口要使用也必须通过子类,子类通过implements关键字实现接口
    3.继承抽象类实现接口
    一个子类可以同时继承抽象类和实现接口
    接口和抽象类的使用限制
    · 允许一个抽象类实现多个接口
    · 一个接口是不允许继承抽象类的
    · 允许一个接口继承多个接口
    · 一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承。
    异常
    · 异常时导致程序中断运行的一种指令流,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失。
    · 异常代表了一种意外的情况,代表了正常情况下不会发生的情况。
    · 在程序的设计中必须要考虑各种异常的发生,并正确的做好相应的处理,这样才能保住程序的正常执行。
    异常处理格式

    try{
        //有可能出现异常的语句
     }catch(异常类  异常对象){
         //编写异常处理语句
     }[catch(异常类  异常对象){
         //编写异常处理语句
     }...]
     [finally{
        一定会运行到的代码;
     }]
    

    Java的异常处理机制
    Java异常处理也是按照面向对象的方式进行处理的。
    步骤如下:
    1 一旦产生异常,则首先会产生一个异常类的实例化对象;
    2 在try语句中队异常对象进行捕捉;
    3 产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码
    使用Exception处理其他异常
    · 根据对象的多态性,所以的子类实例可以全部使用父类接收,那么就可以利用向上转型的概念,让所有的异常对象都使用Exception接收。
    · 注意:在Java中所以捕获范围小的异常,必须放在捕获范围大的异常之前,否则程序在编译的时候就会出现错误提示。
    throws关键字
    在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理,而是交给方法调用处进行处理。
    throw关键字
    可以直接使用throw抛出一个异常,抛出的时候直接抛出异常类的实例化对象即可。
    注意:throw不会单独的使用
    · throw关键字的使用完全符合异常处理机制
    · 但是,一般来讲用户都在避免异常的产生,所以不会手工抛出一个新的异常类的实例,而往往会抛出程序中已经产生的异常实例类。
    Exception与RuntimeException
    这两类的区别如下:

    · Exception在程序中是必须使用try...catch进行处理。
    · RuntimeException可以不使用try...catch进行处理,但是如果有异常产生,则异常将有JVM进行处理。
    进程与线程
    ● 进程是程序的一次动态执行过程,它经历了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到最终消亡的过程。
    ● 多线程是实现并发机制的一种有效手段。进程和线程一样,都是实现并发的一个基本单位。
    Java中线程的实现
    ● 在Java中要实现多线程代码的两种手段:
    ● 继承Thread类
    ● 实现Runnable接口
    启动线程
    线程的主要代码是在run方法里写的,但是启动的时候是调用Thread的start方法启动。
    Thread类和Runnable接口的区别
    ● 实际上Thread类和Runnable接口之间在使用上也是有所区别的,如果一个类继承Thread类,则不适合于多个线程共享资源,而实现了Runnable接口,则可以方便的实现资源的共享。
    线程的状态
    ● 要想实现多线程,必须在主线程中创建新的线程对象。任何线程一般具有五种状态,即创建、就绪、运行、阻塞、终止。
    线程操作的主要方法

    判断线程是否启动
    ● 通过Thread类之中的start()方法通知CPU这个线程己经准备好启动,之后就等待分配CPU资源,运行此线程了。那么如何判断一个线程是否已经启动了呢?在Java中可以使用isAlive()方测试线程是否已经启动而且仍然在启动。
    线程的强制运行
    ● 在线程操作中, 可以使用join()方法让一个线程强制运行,线程强制运行期间,其他线程无法运行,必须等待此线程完成之后才可以继续执行。
    线程的休眠
    ● 在程序中允许一个线程进行暂时的休眠,直接使用Thread.sleep()方法即可。
    中断线程
    ● 当一个线程运行的时候,另外一个线程可以直接通过interrrupt()方法,中断其运行状态。
    JavaIO基础图关系


    · 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。
    字节流与字符流
    · 在java.io包中操作文件内容的主要有两大类:
    字节流
    字符流
    · 两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使用的是InputStream, 在字符流中输出主要是使用Writer类完成, 输入主要是使用Reader类完成。
    字节流
    · 字节流主要是操作byte类型数据,以byte数组为准,主要操作类就是OutputStream、InputStream。
    字节输出流: OutputStream
    字节输入流: InputStream
    追加新内容
    · 之前的所有操作中,如果重新执行程序, 则肯定会覆盖文件中的已有内容, 那么此时可以通过FielOutputStream
    向文件中追加内容,FileOutputStream的另外一个构造方法:
    public FileOutputStream(File file,boolean append) throwsFileNotFoundException
    · 在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容。
    字节输入流: InputStream
    · 既然程序可以向文件中写入内容,则就可以通过InputStream从文件中把内容读取进来,首先来看InputStream类的定义:
    public abstract class InputStream extends Objectimplements Closeable
    · 与OutputStream类一 样, InputStream本 身也是-一个抽象类,必须依靠其子类, 如果现在是从文件中读取,子类肯定是FileInputStream。观察FileInputStream类的构造方法:
    public FilelnputStream(File file) throws FileNotFoundException
    字符流
    · 在程序中一个字符等于2个字节,那么JAVA提供了Reader、Writer两 个专门操作字符流的类。
    字符输出流: Writer
    字符输入流: Reader
    使用FileWriter追加文件的内容
    · 在使用字符流操作的时候,也可以实现文件的追加功能, 直接使用FileWriter类中的以下构造即可实现追加:
    public FileWriter(File file,boolean append) throwsIOException
    将append的值设置成true,就表示追加。
    字符输入流: Reader
    · Reader是使用字符的方式从文件之中取出数据,Reader类的定义如下:
    public abstract class Reader extends Object implementsReadable, Closeable
    · Reader本身也是抽象类,如果现在要从文件中读取内容,则可以直接使用FileReader子类。. FileReader的构造方法定义如下:
    public FileReader( File file) throwsFileNotFoundException
    字节流与字符流的区别
    · 字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的。
    OutputStreamWriter和InputStreamReader
    · 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。
    · OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变为字节流输出对象。
    · InputStreamReader: 是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。
    管道流
    · 管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream) 、管道输入流(PipedInputStream),如果要想进行管道输出,则必须把输出流连在输入流之上,在PipedOutputStream类上有如下的一个方法用于连接管道:
    · public void connect(PipedInputStream snk) throws IOException
    打印流
    · 在整个IO包中,打印流是输出信息最方便的类,主要包含:
    · 字节打印流(PrintStream)
    · 字符打印流(PrintWriter)
    · 打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字符串等等。
    GUI
    Java图形开发有两种可以使用的技术:AWT、Swing

    · AWT:大量使用Windows的系统函数
    · Swing:采用Java实现用户界面,可以在任意的系统平台上工作
    AWT
    AWT(Abstract Windowing Toolkit),抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。
    AWT中的所有工具类都保存在java.awt包中,此包中的所有操作类可用来建立图形用户界面(GUI)的类,这些类又被称为组件(components)。
    AWT包中提供的所有工具类,主要分为以下三种:
    ➢ 组件:Component
    ➢ 容器:Container
    ➢ 布局管理器:LayoutManager

    组件
    ➢ 在图形界面中,用户经常会看到按钮、标签、菜单等组件。
    ➢ 组件会在一个窗体上显示。
    ➢ 在整个AWT包中,所有的组件类都是从Component和MenuComponet扩展而来的,这些类会继承这两个类的公共操作。
    容器(Container)
    ➢ 所有的AWT组件都应该放到容器之中。
    ➢ 在容器中,所有的组件都可以设置在容器中的位置、大小等。
    ➢ 所有的容器都是Component的子类。
    布局管理器(LayoutManager)
    ➢ 使用布局管理器可以使容器中的组件按照指定的位置进行摆放。即使容器改变了大小,布局管理器也可以准确的把组件放到指定的位置,这样就可以有效
    的保证版面不会混乱。
    ➢ 在AWT中所有的布局管理器都是LayoutManager的子类。
    Swing简介
    ➢ AWT大量的引入了Windows函数, 称为重量级组件。
    ➢ Swing使 用Java语言实现,是以AWT平台为基础构建起来的新组件,属于轻量级的图形界面组件,直接使用Swing可以更加轻松的构建用户界面。
    Dimension类
    ➢ 在JFrame中设置窗体的大小,也可以使用Dimension类完成。➢此类封装了组件的现实宽度和高度。
    Point类
    ➢ 组件的显示位置也可以使用Point类指定,此类封装的是显示位置的X、Y坐标。
    JButton组件
    JButton组件表示一个普通的按钮,直接使用此类就可以在窗体中增加一个按钮。
    布局管理器
    · 使用布局管理器可以管理组件的显示位置,每当需要重新调整屏幕大小或重新绘制屏幕上任一项目时,都要用到布局管理器。
    · 在Swing中使用的所有布局管理器都实现LayoutManager接口,在Swing中主要使用以下五种常见的布局管理器:
    ➢ FlowLayout
    ➢ BorderIayout
    ➢ GridIayout
    ➢ Cardlayout
    ➢ 绝对定位。
    FlowLayout
    FlowLayout属于流式布局管理器,使用此种布局方式,所有的组件会像流水一样一次进行排列。
    BorderLayout
    BorderI ayout将一个窗体的版面划分成东、西、南、北、中五个区域,可以直接将需要的组件放到这五个区域中即可。
    GridLayout
    ➢ GridIayout布局管理器是以表格的形式进行管理的
    ➢ 在使用此布局管理器的时候必须设置显示的行数和列数
    CardLayout
    ➢ CardLayout就是将一组组彼此重叠的组件进行布局,就像一张张卡片一样,这样每次只会展现一个界面。
    JSplitPane
    JSplitPane主要功能是分割面板,可以将一个窗体分为两个子窗体,可以是水平排列也可以是垂直排列。

    JTabbedPane
    ➢ JTabbedPane是在一个面板上设置多个选项卡供用户选择
    ➢ 如果用户需要查看相关方面信息,直接点开选项卡即可浏览,通过这种方式可以方便的管理相关信息。
    JDesktopPane与JInternalFrame
    ➢ 在Swing中也可以完成内部窗体的显示,在一个窗体中可以显示多个子窗体,每一个子窗体都无法超出父窗体的区域。
    ➢ JDesktopPane规定了一个父窗口的基本形式。
    ➢ JInternalFrame规定了各个子窗体,JInternalFrame需 要加入到JDesktopPane之中。
    常用接口
    1.Driver接口
    Driver接口由数据库厂家提供,作为java开发人员,只需要使用Driver接口就可以了。在编程中要连接数据库,必须先装载特定厂商的数据库驱动程序,不同的数据库有不同的装载方法。如:
      装载MySql驱动:Class.forName("com.mysql.jdbc.Driver");
      装载Oracle驱动:Class.forName("oracle.jdbc.driver.OracleDriver");

    2.Connection接口

    Connection与特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果。DriverManager.getConnection(url, user, password)方法建立在JDBC URL中定义的数据库Connection连接上。
      连接MySql数据库:Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");
      连接Oracle数据库:Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:database", "user", "password");
      连接SqlServer数据库:Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://host:port;
    DatabaseName=database", "user", "password");
       常用方法:
    createStatement():创建向数据库发送sql的statement对象。
    prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象。
    prepareCall(sql):创建执行存储过程的callableStatement对象。
    setAutoCommit(boolean autoCommit):设置事务是否自动提交。
    commit() :在链接上提交事务。
    rollback() :在此链接上回滚事务。

  • 相关阅读:
    pycharm快捷键
    Java线程的生命周期
    Java中的管程
    Java并发编程之入门
    Linux系统监控命令
    RT-Thread 搜集一些其他博主的博客以备学习
    late_initcall 替换 module_init
    去掉行尾的^M
    ST3 C程序自动补全
    MinGW-W64 编译 LLVM 与 Clang
  • 原文地址:https://www.cnblogs.com/yuanqizhizhi/p/12036905.html
Copyright © 2020-2023  润新知