
java基础
文章平均质量分 52
spider-clown
这个作者很懒,什么都没留下…
展开
-
Java基础21-Exception
异常什么是异常Java中的错误大致分为两类:1.编译时的错误,语法错误2.运行时错误,语法正确,逻辑错误Java中有一组类专门描述各种不同的运行时错误,叫做异常类,实例化对象就是各种异常对象。1、程序出现错误时,会自动创建一个包含错误信息的异常对象。2、将异常对象提交给系统。3、由系统转交给能够处理这个异常的代码进行处理。异常分类本质上可以分为两大类:1.Error:指系统错误,由JVM生成,无法处理。2.Exception:程序运行期间出现的错误,可以处理。异常的使用try-c原创 2021-05-26 14:42:26 · 261 阅读 · 0 评论 -
Java基础第20节
包装类装箱和拆箱装箱:基本数据类型—>包装类public static valueOf(type value)静态工厂方法静态工厂方法是专门用来创建对象的一个静态方法,功能上与构造器一样,都是用来创建对象的。获取一个类的实例对象,有两条路可选:1.构造器2.静态工厂方法区别:1.静态方法可以有自定义的名字。2.静态方法在需要的情况下可以保证单例模式。什么是单例模式这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。1、单例类只能有一个实例。2原创 2021-05-25 17:23:52 · 103 阅读 · 0 评论 -
Java基础第七节--面向对象(继承)
面向对象继承创建一个公共的父类People,来完成相同代码的编写,然后再让Student、Teacher复用父类中的属性和方法,这就是继承的原理,子类拥有父类的非私有属性。父类中的private信息(属性+方法),子类无法继承。父类的构造函数子类无法继承构造器是用来创建对象的Student student=new Student();每个类至少有一个构造方法,即使你一个方法都不写,也会自动生成一个默认的构造方法(无参构造),编译的时候自动加进去。如果手动编写一个有参构造,那么默认的无参构造原创 2021-05-17 11:24:47 · 108 阅读 · 0 评论 -
Java基础第六节-面向对象
面向对象Java中的变量有两种1、基本数据类型2、引用类型基本数据类型和引用类型的区别?基本数据类型的类型范围是固定的,8种引用类型的类型不是固定的,可以有无限种可能(JDK,框架,开发者自定义)基本数据类型只需要用到栈内存,不需要用到堆内存,具体的数值直接存储在栈内存中。引用类型同时用到栈内存和堆内存,真正的对象数据存储在堆中,堆的内存地址存入到栈中,栈中是通过引用的方式指向堆中真正的数据。引用类型的数据都是对象,基本数据类型的数据不是对象。类和对象的关系每个对象都应该有自己的特原创 2021-05-16 15:38:36 · 102 阅读 · 0 评论 -
Java基础第五节-数组
数组什么是数组数组是一种可以存放大量数据的数据结构,数组中存储的数据类型必须一致,是一个具有相同数据类型的数据集合。使用数组也需要在内存中开辟一块空间来存储数据,同时数组的空间是连续的。数组由4种基本元素组成:数组名称,数组也是一个变量,所以需要变量名 array数组元素:存入数组的数值,1,2,3…元素的下标,从0开始数据类型,存入数组的数据类型必须一致,int…int [] array=new [数组长度];# 创建+赋值int [] array={1,2,3};数组的下原创 2021-05-16 13:48:08 · 912 阅读 · 0 评论 -
Java基础第二节
JVM概述程序计数器占用内存较小,是当前线程所执行的字节码(JVM指令)行号指示器,JVM通过改变计数器的值来选取下一条要执行的指令。多线程之间的程序计数器相互独立,互不影响,为了保证每个线程恢复之后都能回到之前中断的位置,进而继续执行。Java堆一般所说的“堆”就是指Java堆,是用来存放java对象的,每个Java对象都是存放在堆中的。面向对象编程语言和面向过程编程语言的区别?面向过程关注的是每一步具体的细节,将程序细化到具体的步骤面向对象关注的是程序能够抽象出多少个数据模型,不需要关注原创 2021-05-14 13:33:26 · 99 阅读 · 0 评论 -
java基础第一节
Java开发步骤1.编写java代码程序2.将java代码编译成字节码class文件 javac文件名(带后缀)3.运行Java 文件名(不带后缀)第一步编写java程序,第二步将java程序编译成JVM能识别的十六进制class文件第三步JVM将字节码十六进制class文件翻译成底层操作系统能识别的二进制机器码查看将字节码文件翻译成我们能看懂的的指令javap -c HelloWorld创建任何一个 Java 对象之前,一定会优先创建 Object 对象的,因为 Object原创 2021-05-13 16:30:38 · 152 阅读 · 0 评论 -
线程同步
线程同步java中允许多线程并行访问,同一时间段内多个线程完成各自的操作。多个线程同时操作同一个共享数据时,可能会导致不准确的问题。使用线程同步可以解决上述问题。可以通过synchronized关键字修饰方法实现线程同步,每个Java对象都有一个内置锁,内置锁会保护使用synchronized关键字修饰的方法,要调用该方法就必须先获得锁,否则就处于阻塞状态。非线程同步package com.mie.scynchronized;/* * 实现用户访问数据 */public class A原创 2021-03-09 22:29:05 · 161 阅读 · 0 评论 -
线程中断
很多情况会造成线程停止运行:线程执行完毕自动停止线程执行过程中遇到错误抛出异常并停止线程执行过程中根据需求手动停止Java中实现线程中断有如下几种常用方法:public void stop() 在新版JDK中已不推荐使用public void interrupt()public boolean isInterrupted() public void interrupt() { if (this != Thread.currentThread())原创 2021-03-08 19:43:41 · 224 阅读 · 0 评论 -
线程礼让
线程礼让线程礼让是指在某个特定的时间点,让线程暂停抢占CPU资源的行为,运行状态/就绪状态–》阻塞状态,将CPU资源让给其他的线程来使用。假如线程甲和线程乙在交替执行,某个时间点线程甲做出了礼让,所以在这个时间点线程乙拥有了CPU资源,执行业务逻辑,但不代表线程甲一直暂停执行。线程甲只是在特定的时间点礼让,过了时间节点,线程甲再次进入就绪状态,和线程乙争夺CPU资源。通过yield方法来实现。package com.mie.yield;public class YieldThread1 ex原创 2021-03-08 18:48:14 · 287 阅读 · 1 评论 -
线程合并
线程合并合并是指将指定的某个线程加入到当前线程中,合并为一个线程,由先前的两个线程交替执行变成一个线程中的两个子线程按顺序执行。通过调用join方法来实现合并,具体如何合并?线程甲和线程乙,线程甲执行到某个时间点的时候调用线程乙的join方法,则表示从当前时间点开始CPU资源被线程乙独占,线程甲进入阻塞状态,直到线程乙执行完毕,线程甲才进入就绪状态,等待获取CPU资源进而进入运行状态。join方法重载:join方法表示乙线程执行完毕之后才能执行其他线程,join(long millis)表示乙线程原创 2021-03-07 20:12:06 · 854 阅读 · 1 评论 -
线程休眠
线程休眠让当前线程暂停执行,从运行状态进入阻塞状态,将CPU资源让给其他线程的调度方式,通过sleep()来实现。sleep方法的定义:public static native void sleep(long millis) throws InterruptedException;从定义可以看出,sleep方法是静态本地方法,可以通过对象调用,方法定义抛出InterruptedException直接继承自Exception,外部调用的时候必须手动处理异常。sleep(long millis),调原创 2021-03-07 20:09:01 · 693 阅读 · 1 评论 -
线程的状态
线程共有5种状态,在特定的情况下,线程可以在不同的状态之间切换。创建状态:实例化了一个新的线程对象,还未启动。就绪状态:创建好的线程对象调用start方法完成启动,进入线程池等待抢占CPU资源。运行状态:线程对象获取了CPU资源,在一定的时间段内完成执行任务。阻塞状态:正在运行的线程暂停执行任务,释放CPU资源,重新回到就绪状态,等待获取CPU资源。(不能返回运行状态)终止状态:线程运行完毕或者因为异常导致该线程终止运行。...原创 2021-03-07 16:50:58 · 121 阅读 · 0 评论 -
Java中多线程的使用
Java中多线程的使用第一种继承Thread类1.创建自定义类并继承Thread类。2.重写Thread类中的run方法,并编写该线程的业务逻辑代码。package com.mie.test;public class MyThread1 extends Thread{ @Override public void run() { // TODO Auto-generated method stub //定义业务逻辑 for (int i = 0; i <原创 2021-03-07 16:03:38 · 149 阅读 · 1 评论 -
Java Scanner类
Scanner类的用法java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。创建 Scanner 对象的基本语法:Scanner s = new Scanner(System.in);接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:使用 next 方法:packa原创 2021-03-06 15:34:23 · 127 阅读 · 1 评论 -
综合案例
综合案例(Comprehensive case)封装、继承、多态、抽象、接口、异常完成一个汽车管理系统。需求描述:共有 3 种类型的汽车:小轿车、大巴车、卡车,其中小轿车的座位数是 4 座,大巴车座位数是 53 座,卡车座位数是 2 座,要求使用封装、继承、抽象来完成车辆的定义。可以对车辆信息进行修改,卡车可以运货但是载重量不能超过 12 吨,使用自定义异常来处理错误,小轿车和大巴车没有此功能,要求使用接口来实现。Car类package com.mie.car;public abstract原创 2021-03-06 14:13:36 · 152 阅读 · 0 评论 -
Java基础 多态(Polymorphism)
Java基础 多态(Polymorphism)一个事物具有多种表现形态,在 Java 程序中,定义一个方法,在具体的生成环境中根据不同的需求呈现不同的业务逻辑,多态的前提是继承。举例说明:会员打折买书业务来理解多态细分:Member会员类(父类)、OrdinaryMember普通会员类(子类)、SuperMember超级会员类(子类)、Cashier收银员类、Settlement结算测试类。Member类(父类)package com.temporary.polymorphism;//抽象类会原创 2021-03-05 12:13:49 · 316 阅读 · 1 评论