1、集合框架的概述

  • 集合、数组都是对多个数据进行存储操作的结构,简称Java容器。(说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)
  • 数组在存储多个数据方面的特点:
    • 一旦初始化以后,其长度就确定了。
    • 数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。(比如:String[] arr;int[] arr1;Object[] arr2)
  • 数组在存储多个数据方面的缺点:
    • 一旦初始化以后,其长度就不可修改。
    • 数组中提供的方法非常有限,对于添加、删除、插入数据等操作,非常不便,同时效率不高。
    • 获取数组中实际元素的个数的需求,数组没有现成的属性或方法可用。
    • 数组存储数据的特点:有序、可重复。对于无序、不可重复的需求,不能满足。
Read more »

1、多线程的创建

1.1 继承于Thread类

  • 创建一个继承于Thread类的子类。
  • 重写Thread类的run()。
  • 创建Thread类的子类的对象。
  • 通过此对象调用start()。

例子:

Read more »

  • 根据《Java虚拟机规范》的规定,运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。

由此先来看看方法区的作用。

Read more »

1、异常概述

  • 在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。
  • 异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)
  • Java程序在执行过程中所发生的异常事件可分为两类:
    • Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError和OOM。一般不编写针对性的代码进行处理。
    • Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:空指针访问、试图读取不存在的文件、网络连接、数组角标越界等。
Read more »

  • 根据《Java虚拟机规范》的规定,运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。

由此先来看看本地方法栈和堆的作用。

Read more »

一、Java面向对象编程

1.1 类和对象

  • **类(Class)对象(Object)**是面向对象的核心概念。
    • 类是对一类事物的描述,是抽象的、概念上的定义。
    • 对象是实际存在的该类事物的每个个体,因而也称为实例(instance)。
  • 设计类,其实就是设计类的成员。
    • 属性 = 成员变量 = field = 域、字段
    • 方法 = 成员方法 = 函数 = method
    • 创建类的对象 = 类的实例化 = 实例化类
  • 类和对象的使用(面向对象思想落地的实现)
    • 创建类,设计类的成员。
    • 创建类的对象。
    • 通过“对象.属性”或“对象.方法”调用对象的结构。
      Read more »

  • 根据《Java虚拟机规范》的规定,运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。

由此先来看看虚拟机栈的作用。

Read more »

  • 非虚方法:方法在编译器就确定了具体的调用版本,这个版本的运行时是不可变的(非虚方法有静态方法、私有方法、final方法、实例构造器、父类方法,其他方法为虚方法)。

  • jvm提供了以下几条方法调用指令:

    • 调用非虚方法(final修饰的方法除外):
      • (1)invokestatic:调用静态方法,解析阶段确定唯一方法版本。
      • (2)invokespecial:调用方法、私有方法、父类方法,解析阶段确定唯一方法版本。
    • 调用虚方法:
      • (3)invokevirtual:调用所有虚方法。(调用final方法用的是这个指令)
      • (4)invokeinterface:调用接口方法。
      • (5)invokedynamic:动态解析出需要调用的方法,然后执行。
Read more »

  • 根据《Java虚拟机规范》的规定,运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。

由此先来看看程序计数器的作用。

Read more »