- 博客(14)
- 收藏
- 关注
原创 java异常
异常主要分为:错误、一般性异常(受控异常)、运行时异常(非受控异常)错误如果应用程序出现了Error,那么将无法恢复,只能重新启动应用程序,最典型的Error的异常是:OutOfMemoryError受控异常这种异常属于一般性异常,出现了这种异常必须显示的处理,不显示处理java程序将无法编译通过。编译器强制普通异常必须try…catch处理,或用throws声明继续抛给上层调用方法处理,所以普通异常也称为checked异常。非受控异常非受控异常也即是运行时异常(RuntimeExcepti
2020-07-12 14:35:52
116
原创 抽象类
抽象类定义1、语法定义:抽象类钱使用abstract关键字修饰,则该类为抽象类。2、应用场景:a、在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法(抽象类约束子类必须有哪些方法,但并不关注子类怎么去实现这些方法。)当多个类中出现相同功能,但是功能主体不同,这是可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。b、从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性。3、作用:限制规定子类必须实
2020-07-12 14:33:29
122
原创 控制流
Java中有三种主要的循环结构:while 循环do…while 循环for 循环条件 循环 分支 都是与C语言一样的(Java的switch case支持字符类型char和字符串类型String)java 的for each的使用String [] names ={“James”, “Larry”, “Tom”, “Lacy”};for( String name : names ) {System.out.print( name );System.out.print("
2020-07-12 14:28:58
252
原创 运算
简单数据类型的赋值操作,新的变量是独立的容器类型的赋值操作,仅仅是使新的变量引用了旧的变量,它们指向同一地址• == 判断两个变量是否为同一个引用,是则为true,不同则为False。• equals()方法则用于比较二者的内容是否相同,相同则为true, 不同则为False。单目运算符 断言 赋值运算符 是从右向左的 其他的是从左向右运算符优先级和C语言一样:表示有符号移位表示无符号移位(C语言中没有)^表示按位异或,不存在逻辑异或...
2020-07-12 14:27:54
137
原创 对象
对象也是一种数据类型,有自己的生存期和作用域,这一点和简单变量没什么区别对象的类属性无论是简单变量还是容器变量都会自动初始化ArrayList notes = new ArrayList();ArrayList是一个容器类,即存储对象的一个容器,其大小是动态的,与数组的定长不同,其作用是用来存放任意数量的对象,其中ArrayList表示容器类型,表示里面的元素类型HashSet与ArrayList类似,但是前者表示的是一种集合,并不在意顺序,而且具有集合的互异性,即不会出现相同元素,若add了相同元
2020-07-12 14:26:35
91
原创 输入流和输出流
输入流和输出流(1)输入语句1.使用Scanner类:(1)使用java.util包。 import java.util.*;(2)构造Scanner类对象,它附属于标准输入流System.in。 Scanner s = new Scanner(System.in);(3)常用的next()方法系列:nextInt():输入整数nextDouble():输入双精度数next():输入字符串(以空格标志结束)。nextLine():输入字符串 (可带空格)...
2020-07-12 14:25:39
102
原创 final 与 static
都可以修饰类、方法、成员变量。static可以修饰类的代码块,final不可以。static不可以修饰方法内的局部变量,final可以。static修饰表示静态或全局,被修饰的属性和方法属于类,可以用类名.静态属性 / 方法名 访问static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块,只会被执行一次static静态变量的加载早于对象的创建。static修饰的属性,也就是类变量,是在类加载时被创建并进行初始化,只会被创建一次。static修饰的变量可以重新
2020-07-05 13:21:25
121
原创 final、finally和finalize
final 表示最终的、不可改变的。用于修饰类、方法和变量。用final修饰的类不能被其他类所继承。用final修饰的方法不能被重写。修饰属性:可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化。修饰局部变量:尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值以后,就只能在方法体内使用此形参,但不能进行重新赋值。finally 异常处理的一部分,它只能用在try/catch语句中,finally中声明的是一定会被执行的代码。即便c
2020-07-05 13:20:46
100
原创 JDK 和 JRE
JRE:Java Runtime Environment(java运行时环境)。即java程序的运行时环境,包含了java虚拟机,java基础类库。JDK:Java Development Kit(java开发工具包)。即java语言编写的程序所需的开发工具包。JDK包含了JRE,同时还包括java源码的编译器javac、监控工具jconsole、分析工具jvisualvm等。...
2020-07-05 13:19:58
92
原创 ==与equals
== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。java中的数据类型可以分为两类:基本数据类型byte,short,char,int,long,float,d
2020-07-05 13:19:13
154
原创 java二叉树
二叉树指的是每个节点最多只能有两个子树的有序树。通常左边的子树被称为“左子树”,右边的子树被称为“右子树”。由此可见,二叉树仍然是树,只是一种特殊的树。二叉树的每个节点最多只有两棵子树(不存在大于2的节点)。二叉树有左、右之分,不能颠倒。树和二叉树的两个重要区别如下:1.树中节点的最大度数没有限制,而二叉树节点的最大度数为2,也就是说,二叉树的节点最大度数为2。2.无序树的节点无左右之分,而二叉树的节点有左右之分,也就是说二叉树是有序树。一棵深度为K的二叉树,如果它包含了2^K - 1个节点,就把
2020-06-14 15:24:46
159
原创 java多线程概念
什么是线程进程的最小单元线程自己不拥有系统资源一个线程可以创建和撤销另一个线程线程有就绪、阻塞、运行三种基本状态线程的两种实现方法继承 Thread 类,并重写run 函数实现 Runnable 接口,并重写 run 函数线程、进程的区别进程:是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。线程:是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,在多CPU环境下就允许多个线程同时运行。...
2020-06-14 15:21:50
106
原创 递归概念
一、基本概念递归算法是一种直接或者间接调用自身函数或者方法的算法。Java递归算法是基于Java语言实现的递归算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。递归算法,其实说白了,就是程序的自身调用。它表现在一段程序中往往会遇到调用自身的那样一种coding策略,这样我们就可以利用大道至简的思想,把一个大的复杂的问题层层转换为一个小的和原问题相似的问题来求解的这样一种策略。递归往往能给我们带来非常简洁
2020-06-14 15:18:04
749
原创 递归
递归算法是一种直接或者间接调用自身函数或者方法的算法。Java递归算法是基于Java语言实现的递归算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。递归算法,其实说白了,就是程序的自身调用。它表现在一段程序中往往会遇到调用自身的那样一种coding策略,这样我们就可以利用大道至简的思想,把一个大的复杂的问题层层转换为一个小的和原问题相似的问题来求解的这样一种策略。递归往往能给我们带来非常简洁非常直观的代码
2020-06-14 15:16:58
126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人