Java学习笔记
--SILENCE--
这个作者很懒,什么都没留下…
展开
-
java中判断字符串是否为数字的几种方法
1.用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length() - 1; i > 0; i--){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; }2.用正则表达式public static boolean isNumeric(String st原创 2020-06-18 10:19:55 · 361 阅读 · 0 评论 -
二叉树的三种遍历机制
最常用的三种遍历方法:前序(preorder)、中序(inorder)和后序(postorder),二叉搜索树最常用的是中序遍历。中序遍历中序遍历二叉搜索树会使所有的节点按关键字升序被访问到。如果希望在二叉树中创建有序的数据序列,这是一种方法。遍历树最简单的方法是递归。用递归方法遍历整棵树要用一个节点做参数。初始化时这个节点是根。步骤如下:调用自身来遍历节点的左子树;访问此节点调用自身来遍历节点的右子树。遍历可以应用于任何二叉树,而不只是二叉搜索树。遍历原理不关心节点的关原创 2020-06-02 20:38:20 · 349 阅读 · 0 评论 -
StringBuilder
StringBuilder的主要StringBuilder是append和insert方法,它们是重载的,以便接受任何类型的数据。 每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入字符串构建器。 append方法始终在构建器的末尾添加这些字符; insert方法将insert添加到指定点。例如,如果z引用当前内容为“ start ”的字符串构建器对象,那么方法调用z.append(“le”)将导致字符串构建器包含“ startle ”,而z.insert(4, “le”)会将...原创 2020-05-25 20:40:10 · 210 阅读 · 0 评论 -
Java实现排序
1.快速排序class Solution { public int[] sortArray(int[] nums) { int l = 0; int h = nums.length-1; quickSort(nums, l, h); return nums; } //一趟快速排序 int parti...原创 2020-04-02 09:28:49 · 154 阅读 · 0 评论 -
Java新特性——枚举
多例设计模式与枚举使用枚举进行基本操作多例设计模式与枚举多例设计模式一定是构造方法私有化,而后在类的内部产生若干个实例化对象。范例:定义颜色基色的多例设计模式class Color{ private static final Color RED = new Color("红色"); private static final Color GREEN = new Color("绿色"...原创 2019-05-24 23:18:52 · 248 阅读 · 0 评论 -
综合实战:图书大厦
综合实战:图书大厦总结范例:定义图书的标准interface Book{//准备图书信息 public String getTitle();//得到书的名字 public double getPrice();//得到书的价钱}范例:定义图书大厦,一个图书大厦要保存有多本书的信息,所以图书大厦应该使用链表:class BookShop{ private Link books =...原创 2019-05-06 23:30:13 · 168 阅读 · 0 评论 -
JDK1.5新特性——可变参数
JDK1.5新特性——可变参数总结可变参数存在的意义?public class Hello{ public static void main(String args[]) {//throws Exception System.out.println(add(new int[]{1,2,3})); System.out.println(add(new int[]{5,6,7,8,9})...原创 2019-05-09 12:33:33 · 242 阅读 · 0 评论 -
junit测试工具
junit测试工具用例测试(Use Case):要求高。junit就是一个用例测试工具junit是一个第三方开发包,要想使用,那么就必须配置到ava Builder Path,此时询问是否要自动配置。...原创 2019-05-09 12:07:53 · 364 阅读 · 0 评论 -
异常的捕获及处理
异常的捕获及处理认识异常处理异常多个异常的处理异常处理流程throws关键字throw关键字异常处理的模型(核心)RuntimeException类认识异常异常是导致程序中断执行的一种指令流,一旦产生异常没有正常处理的话,那么程序江湖中断执行。范例:观察产生异常的代码public class Hello{ public static void main(String args[]){...原创 2019-05-09 00:16:49 · 770 阅读 · 0 评论 -
单例设计模式
单例设计模式单例设计模式多例设计模式总结单例设计模式的特点;多例设计模式的特点。单例设计模式class Singleton{//编写一个普通类 public void print(){ System.out.println("www.mldn.cn"); }}这个时候程序类给出后肯定是直接实例化对象,而后调用方法。public class Hello{ public ...原创 2019-05-08 18:17:16 · 192 阅读 · 0 评论 -
链表数据结构实现
链表的定义与使用链表的基本概念链表开发入门(实现的基本原理)链表的基本概念链表=可变长的对象数组,属于动态对象数组范畴。对象数组有哪些问题呢?正因为如此现在如果要想让其可以编写出便于维护的代码,那么就需要实现一个动态对象数组,就可以使用链表完成。但是现在如果想要实现动态的对象数组,要考虑两个问题:为了适应所有的开发要求,此对象数组要求可以保存所有的数据类型,那么一定首选Object...原创 2019-05-05 23:18:51 · 1043 阅读 · 0 评论 -
访问控制权限
访问控制权限四种访问控制权限四种访问控制权限四种访问控制权限按照从小到大的顺序:private<default<protectd<public。各权限的特点如下:No.范围privatedefaultprotectdpublic1同一个包中的同一类√√√√2同一个包中的不同类√√√3不同包的子类√√...原创 2019-05-08 16:56:56 · 413 阅读 · 0 评论 -
包装类
包装类基本概念装箱与拆箱操作数据类型转换总结很重要包装类的特点装箱与拆箱操作数据类型处理基本概念Object类可以接收所有的引用数据类型,因为引用数据类型本质上就是对象,但 是这之中会出现一个新的问题,基本数据类型不是对象,所以发现在最初设计的过程之中,Object类无法接收基本数据类型。所以最早人们提出一点,能不能将基本数据类型包装以下,就采用了如下的代码结构。范例:最初的包装...原创 2019-05-05 16:38:19 · 149 阅读 · 0 评论 -
匿名内部类
匿名内部类框架中会涉及,是个重点。匿名内部类=没有名字的内部类。任何技术出现都有它可以解决的问题,所以下面首先来分析一下没有匿名内部类的情况。范例:观察程序代码问题interface A{ public void print();}class X implements A{ public void print(){ System.out.println("**********...原创 2019-05-05 15:16:04 · 145 阅读 · 0 评论 -
JDK1.5新特性——foreach循环
JDK1.5新特性——foreach循环foreach 是一个名字,而其本质就是for循环,但是这样的for循环是给特定的结构使用的:数组、类集。范例:传统数组的输出以上的索引操作过于复杂,还可能出现数组越界。可以使用如下的for循环输出。for()...原创 2019-05-09 19:23:12 · 384 阅读 · 0 评论 -
JDK1.5新特性——静态导入
JDK1.5新特性——静态导入随后如果按照正常的编写思路,需要在其他类中使用import语句导入程序包,而后利用程序包进行调用。范例:传统结构普通的import操作能导入放入的只是其他包的程序类。但是如果一个类中的方法全部都是static组成,那么发现导入类之后还需要类名称进行调用。范例:静态导入——类中的静态方法利用静态导入就好比add方法是定义在主类中一样。...原创 2019-05-09 22:09:52 · 169 阅读 · 0 评论 -
包的定义及使用
包的定义及使用包的定义包的导入包的定义共识:同一个目录下不允许存在同名文件。但是在实际的开发之中又不可能出现不重名的情况,为此,在项目里往往会引入包的定义,包就是一个文件夹,也就是说不同的目录中可以存放相同的文件。Java中使用package关键字定义包。范例:定义包一旦声明了包,就必须将*.class文件保存在包里面,包不是手工定义的,Java专门提供了打包编译操作;范例:打包编...原创 2019-05-08 12:39:07 · 710 阅读 · 0 评论 -
生产者——消费者问题
线程间的通讯问题及Object类的支持范例:初步实现生产者与消费者问题class Info { private String title; private String content; public String getTitle() { return title; } public void setTitle(String title) { this.title = ...原创 2019-06-09 18:39:56 · 242 阅读 · 0 评论 -
Java8新特性——内建函数式接口
四个内建函数式接口。从JDK1.8开始提供有一个java.util.function的包,在这个包里,提供有四个内建函数式接口。功能型接口(Function)供给型接口断言式接口:做判断使用消费型接口这四个是最基础的接口,只提供有限的几个参数,但是在实际的开发之中,参数可能会很多范例:引用功能型接口范例:消费型接口范例:供给型接口范例:断言型函数接口...原创 2019-05-28 12:59:34 · 180 阅读 · 0 评论 -
Java8新特性——方法引用
方法引用的本质:用不同的方法名称表示同一个方法。方法引用的本质与对象的引用类似,就是为某一个方法设置一些别名。但是从Java8开始,方法引用出现了三种形式:范例:引用静态方法除了可以引用静态方法之外,也可以引用某些普通的方法。范例:引用普通方法这个方法不需要传递任何参数,但是会返回一个新的字符串数据。以上是使用了特定的对象来实现的方法引用,而在方法引用中也可以使用某一个类来描...原创 2019-05-28 12:27:17 · 287 阅读 · 0 评论 -
java8新特性——Lamda表达式
匿名内部类与Lamda表达式的关系。匿名内部类:必须基于抽象类或者是接口,其主要的目的是减少程序中类的定义。范例:匿名内部类以上的匿名类为了完成一个输出,结果写了一堆代码,为了解决此类问题,所以在Java8开始引入了Lamda的特征,利用这个Lamda表达式可以实现更为简单的匿名内部类的使用。这就是函数式编程的语法形式,而以上的操作结构:(参数)->语句(方法体);从传统...原创 2019-05-28 11:36:51 · 1288 阅读 · 0 评论 -
java8新特性——接口定义增强
使用static、default定义接口的普通方法。所有子类必须覆盖接口中的全部抽象方法,那么在这种情况下,如果要在接口里定义抽象方法,代码改动太大了。为了解决这一矛盾,所以从JDK1.8开始,允许在接口中使用default定义方法了。此时这样的方法就不需要子类再进行强制性覆写了。子类现在如果有需要也可以进行方法的覆写。但是此时有一个问题了,如果在子类被覆写的方法里面依然要调用父类的...原创 2019-05-28 10:58:36 · 279 阅读 · 0 评论 -
线程的同步和死锁
同步,多个线程访问同一资源引出问题范例:以卖票为例。class MyThread extends Thread{//表示实现多线程 private int ticket = 5; public void run() {//覆写run()方法,线程的主方法 for(int x=0;x<10;x++){ if(this.ticket>0){ System.out...原创 2019-05-30 19:26:38 · 235 阅读 · 0 评论 -
Annotation
软件的开发模式三种内置的Annotation的使用Annotation简介Annotation(注解)提供一种新的项目的开发结构模式,利用Annocation可以实现零配置的开发。软件项目开发经过以下三个开发阶段:第一阶段:代码完成期配置信息直接写死第二阶段:配置文件期配置文件与代码分离,后期维护困难。第三阶段:注解阶段。写回程序,方便维护,为了与程序进行有效的分离,可以...原创 2019-05-27 23:29:23 · 348 阅读 · 0 评论 -
多线程的常用操作方法
线程的命名操作、线程的休眠、线程优先级线程的命名和权限(重点)原创 2019-05-30 15:05:25 · 207 阅读 · 0 评论 -
泛型
泛型产生背景产生背景范例:定义pointer类class point{ private Object x; private Object y; public Object getX() { return x; } public void setX(Object x) { this.x = x; } public Object getY() { return ...原创 2019-05-11 00:55:42 · 162 阅读 · 0 评论 -
Object类
Object类Object类的基本概念取得对象信息(toString()方法)equals()方法Object类可接收一切引用数据类型总结Object类的基本概念虽然参数转型可以解决参数的统一问题,但是面对Java之中如此之多的开发类,所以现在就面临这样一个问题,参数对象要怎样选择才能保存所有的类对象呢?为此,考虑到此种情况,Java中提供了Object类,此类的定义如下:public c...原创 2019-05-05 15:01:54 · 320 阅读 · 0 评论 -
多态性
多态性只是围绕多态性的概念。代码与实际开发并没有关系,多态一定是在继承性的基础上才可以操作。本处使用类来描述,实际开发中,完整的类不应该被继承,开发中都要求继承抽象类和接口。多态实现的两个前提:继承、覆写。范例:引出代码class A{ public void print(){ System.out.println("Hello"); }}class B extends A{...原创 2019-04-24 23:13:16 · 169 阅读 · 0 评论 -
final关键字
final关键字总结final在一些书中被称为终结器,意思是:利用final定义的类不能够有子类、利用final定义的方法不能够被覆写、用final定义的变量就成了常量,常量无法修改。范例:利用final定义类final class A{}class B extends A{}//A是终结了但是在实际代码编写过程中,并不需要太多 关注此类模式,因为这中定义与实际的类结构设计有关。...原创 2019-04-24 21:26:10 · 167 阅读 · 0 评论 -
String类的常用方法
String类的常用方法Java Doc文档简介Java Doc文档简介将所有String类的常用方法全部记下来,包括方法名称、参数作用以及类型。一个成熟的编程语言,除了它语法非常完善之外,也需要提供大量的开发类库,Java除了本身提供的JDK Doc之外还会有大量的。本次操作主要是以文档的查找为主,文档只有英文或者是日文。如果想要找到String类的说明,则通过左上角找到:java.l...原创 2019-04-07 22:32:15 · 524 阅读 · 0 评论 -
String类的基本特点
String类的基本特点String类的两种实例化方式String的相等比较String匿名对象String类的两种实例化方式的区别Sring类对象的比较String类对象的使用分析String类的两种实例化方式String并不是一个基本的数据类型,它本身属于一个类,但是这个类在设计的过程之中加入了一些Java类自己的特殊支持,所以对于这个类的对象的实例化方式就有两种形式:直接赋...原创 2019-04-07 16:37:21 · 492 阅读 · 0 评论 -
static关键字
static是Java中定义的一个关键字,主要是描述全局的概念,所以利用static关键字可以定义属性和方法。但是在百分之九十的情况下,开发代码很少会直接编写static。利用static定义属性class Person{ private String name; private int age; String country = "中华人民共和国";//此属性暂时不封装 public...原创 2020-03-22 11:09:34 · 224 阅读 · 0 评论 -
Java程序逻辑控制
Java程序的逻辑控制分支语句if分支语句循环语句程序主要分为三种逻辑:顺序、分支和循环。分支语句if分支语句if分支语句是最为基础的分支操作,但是其有三种使用形式。范例:使用if判断public class Hello { public static void main(String args[]){ double money = 9.9; if(money == 9.9...原创 2019-03-31 21:42:18 · 427 阅读 · 0 评论 -
Java运算符
运算符数学运算关系与逻辑运算与操作或操作三目运算位运算(了解)总结数学运算如果说程序是由数据处理所组成的,那么有了数据之后还需要具备有数据的计算能力,而这些就属于运算符的定义范畴,但是运算符Java有很多,而且运算符有优先级。对于运算符,千万别搞复杂了。范例:奇葩运算public class Hello { public static void main(String args[])...原创 2019-03-31 20:42:31 · 127 阅读 · 0 评论 -
数组的定义及使用
数组的定义及使用数组的基本概念数组的基本定义数组的引用分析数组与方法间的互操作数组有关的操作类库支持数组的基本概念数组的基本定义数组指的是一组相关变量的集合。如果要定义100个整型变量,按照最原始的方法:int i1;int i2;...int i100.这种操作可以实现要求,但是这些变量的管理太麻烦了。为此,开发中,可以利用数组来解决这一问题。在Java中,数组是引用数据类型...原创 2019-04-06 23:58:54 · 1187 阅读 · 0 评论 -
Java数据类型之Java数据类型的划分方式
程序的本质在于数据的处理上。所以如果想进行程序处理,那么必须要有相应的数据类型。在Java中针对于数据类型一共可以划分为两类:基本数据类型:是进行内容的操作,而不是进行内存的操作; |- 数值型: |- 整型:byte,short,int,long; 默认值:0 |- 浮点型:float,d...原创 2019-03-31 11:36:08 · 500 阅读 · 0 评论 -
Java注释的使用及关键字
1.注释的使用 很多情况下需要对程序做一些说明,尤其是大型开发项目中,理论上注释是为了开发者自己进行维护的所准备的,并且应该越详细越好,但是,事实上很多开发者不写注释。 作为项目项目管理人员,注释直接决定项目的成败。 在Java中注释分为三种:单行注释://; 多行注释:/*...*/; 文档注释:/**...*/; 注释一...原创 2019-03-30 17:10:19 · 935 阅读 · 0 评论 -
深入分析类与对象
深入分析类与对象封装的基础实现封装的基础实现在Java中所有面型对象的概念都是一类与对象的关系为主。下面通过具体程序研究为什么需要封装性。范例:观察如下程序代码class Person{ String name; int age; public void tell(){ System.out.println("姓名:"+name+",年龄:"+age); }}public ...原创 2019-04-04 21:33:12 · 402 阅读 · 0 评论 -
类与对象
类与对象类与对象的基本概念类与对象的定义(==重点==)对象内存分析初步分析引用传递总结类与对象的基本概念在现实生活之中,类指的是具备某一共性的群体的集合。而对象是一种个性的描述。简单的可以理解成对象包含的是具体的信息内容,对象所能够具备的操作行为实际上是由类定义的,也就是说要想使用类,那么必须有一个具体的描述对象,而对象的操作完全有类来定义,对象是可以明确使用的,而类是不可以直接使用的。真...原创 2019-04-03 22:56:57 · 296 阅读 · 0 评论 -
CLASSPATH的实际使用
如果在E:\mydemo目录下存在一个编译好的Hello.class程序,并且当前的路径也指向E:\mydemo,那么就可以直接利用java Hello解释程序。 如果路径错误,会显示找不到或无法加载主类Hello.如果在D盘上想解释Hello类,可以借助CLASSPATH完成。 SET CLASSPATH=路径 范例:将...原创 2019-03-29 21:30:12 · 228 阅读 · 0 评论