![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 55
mi_zhi_lu
这个作者很懒,什么都没留下…
展开
-
Java数据与运算符
Java数据类型与运算符1.Java数据类型划分1.1 整形1.1.1 int1.1.2 byte1.2 浮点型1.2.1 double1.2.2 float1.3 char1.4 布尔型1.5 String 类2.Java 运算符2.1 基本运算符2.2 三目运算符2.3 关系运算符2.4 逻辑运算符新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂...原创 2019-02-19 19:50:00 · 618 阅读 · 0 评论 -
Java新特性枚举的使用
枚举的使用1. 枚举的引出2. Enum类3. 定义结构4. 枚举类的应用1. 枚举的引出在多例模式的使用中,我们知道构造方法私有化,类内部需要提供若干个实例化对象,后面通过static返回。举例:定义一个描述颜色的多例类。public class Color { private final static int RED_NUM = 1; private final sta...原创 2019-06-02 23:16:53 · 312 阅读 · 0 评论 -
反射与类的具体操作
反射与类之间的操作1. 获取父类信息2. 调用构造方法3. 反射调用普通方法4. 反射调用类中属性5. 总结1. 获取父类信息在Class类中提供了一些方法来获取父类信息,以下列举出三个:获取类的包名称:public Package getPackage()取得父类的Class对象:public native Class<? super T> getSuperclass()...原创 2019-06-13 23:55:08 · 511 阅读 · 0 评论 -
Java新特性接口的加强
接口的加强JDK1.8之前的接口定义:接口就是抽象方法和去全局常量的集合;接口中定义的方法是抽象方法,默认是public abstract修饰;在接口中定义的变量,其实是一个常量,并且是public static final修饰。如果现在有一个需要,需要在接口中增加一个新的功能,而它的子类有3W个,那么就要重复粘贴3W次。造成该问题的原因是:因为接口只是一个方法的声明,而没有具体...原创 2019-06-09 23:40:38 · 183 阅读 · 0 评论 -
Java新特性之方法引用
方法引用的使用最初,引用只是针对引用类型完成的,也就是只有数组、类、接口才具备引用操作。JDK1.8后追加了方法引用。实际上引用的本质就是别名。因此方法的引用就是别名的使用。方法的引用有四种形式:引用静态方法: 类名称:: static方法名称;引用某个对象的方法:实例化对象::普通方法;引用某个特定类的方法:类名称::普通方法;引用构造方法:类名称::new。方法的引用是...原创 2019-06-11 11:21:35 · 5266 阅读 · 3 评论 -
Java新特性之Lambda表达式和内建函数使用
1. Lambda表达式的使用Lambda是JDK1.8推出的重要新特性,使用函数式编程。函数式编程和面向对象编程可以理解为两大开发阵营。面向对象最大的局限在于:结构必须完整。比如:在写一个main方法,必须创建一个包,写一个类,定义一个main方法,然后在写输出语句。举例:传统面向对象开发public interface IMessage { void print();}...原创 2019-06-11 16:45:59 · 224 阅读 · 0 评论 -
Java中File文件操作类
File文件操作类1. File类的使用2. 目录操作3. 文件信息1. File类的使用File:本地文件系统中的一个文件(文件和目录)。java.io.File类是一个普通的类,可以直接产生实例化对象。实例化对象用到两个构造方法:public File(String pathname);public File(String parent, String child); 设置父路...原创 2019-06-17 11:16:31 · 366 阅读 · 0 评论 -
利用File类中的方法打印目录层级结构
利用File类中的方法打印目录层级结构第一步:首先了解File相关的使用方法;File类中提供了方法:判断是否是目录:public boolean isDirectory()列出当前目录下所有文件(文件和目录):public File[ ] listFiles()获取当前文件名称:public String getName()第二步:采用递归的思想,因为listFiles()方法只...原创 2019-06-18 18:02:11 · 545 阅读 · 0 评论 -
字节输出流和字节输入流
字节输出流和输入流1. 字节输出流之前介绍的File文件操作类可以关联本地文件系统,实现文件的创建,删除和查询一些文件信息。但是File类不支持对文件内容进行操作,如果要处理文件内容,必须通过流的方式。流分为输入流和输出流。输入流:数据流入程序;输出流:数据从程序流出。在java.io包中,流分为两种:字节流和字符流。字节流:InputStream, OutputStream字符流...原创 2019-06-23 16:10:38 · 2403 阅读 · 0 评论 -
字符输出流和字符输入流
字符输出流和输入流字符输出流字符输入流字节流和字符流操作的本质区别只有一个:字节流是原生的操作,而字符流是经过处理后的操作。在进行网络数据传输、磁盘数据保存所支持的数据类型只有字节。字符输出流字符更加适合去处理中文数据,Writer是字符输出流的处理类。这个类定义如下:public abstract class Writer implements Appendable, Closeabl...原创 2019-06-23 17:11:25 · 2048 阅读 · 0 评论 -
Java中启动线程为什么调用start()方法?
Java中启动一个线程为何调用start()方法而不是run()方法?那么首先看一个例子:class MyThread extends Thread{ @Override public void run() { System.out.println("直接继承Thread"); }}public class Test { public sta...原创 2019-07-15 19:52:05 · 1582 阅读 · 0 评论 -
Java多线程实现的三种方式
Java多线程实现的三种方式继承Thread类,然后覆写run方法;实现Runnable接口,而后覆写run方法;实现Callable接口,而后覆写call<V>方法。1. 继承Thread类start() :是用来启动线程,是多线程启动的唯一方式。由创建到就绪,这个线程是否被运行是由系统调度所决定的。run()方法不由用户调度。那么,为什么线程启动时,为什么不直接...原创 2019-07-15 21:08:15 · 105 阅读 · 0 评论 -
线程停止的三种方式
线程停止的三种方式1. 设置标志位(无法处理线程阻塞时的问题);2. 调用Thread类提供的stop方法强行关闭线程;3. 通过Thread类提供的interrupt方法举例:设置标志位class InterruptThread extends Thread{ private boolean flag = true; public void setFlag(boole...原创 2019-07-17 19:55:13 · 512 阅读 · 0 评论 -
synchronized的两种同步处理方式
锁是用来控制多个线程访问共享资源的方式。一般来说,一个锁能够防止多个线程同时访问共享资源。Java中使用synchronized来实现同步处理。同步:线程按照顺序一个一个进入方法中,不是同时进入。关于synchronized的两种同步处理方式:同步代码块 synchronized(this|Object及其子类对象|当前类.class){ //此处代码块在任意时刻只能有一个线程进入...原创 2019-07-31 21:57:32 · 493 阅读 · 0 评论 -
synchronized的实现原理以及JDK1.6之后的优化
synchronized的底层实现使用synchronized进行同步,关键就是对对象的监视器Monitor进行获取。这涉及到的是JVM层级别的monitorenter与monitorexit指令实现。在使用synchronized时必须保证锁定的对象是Object以及其子类对象。只有Object和它的子类才有对象监视器。执行同步代码块的时候需要执行一个monitorenter和多个...原创 2019-08-02 09:17:28 · 573 阅读 · 0 评论 -
类型擦除的简单理解
泛型是JDK1.5引进的。原创 2019-06-01 11:07:41 · 5732 阅读 · 0 评论 -
通配符和泛型接口简单使用
通配符和泛型接口1. 通配符的引出1.2. 泛型上限1.3. 泛型下限2. 泛型接口1. 通配符的引出在程序中追加了泛型之后,可以避免ClassCastException 的问题,但是又会产生新的情况:参数的统一的问题。举例:方法中的参数类型与接收到的参数类型不匹配public class TestMessage{ public static void main(String[]...原创 2019-05-31 23:01:10 · 362 阅读 · 0 评论 -
JDK1.5新特性(可变参数和foreach)
JDK1.5新特性1. 可变参数2. foreach(增强for循环)1. 可变参数假如有这样一个需求,用于计算任意参数的整数相加的结果。这个需求在早期是用数组的方法来实现。举例:早期实现方式(利用数组进行求和)public class Test1{ public static void main(String[] args) { //所有的参数,包装成int[]数组,...原创 2019-05-29 09:38:31 · 225 阅读 · 0 评论 -
Java类与对象(三)
Java类与对象(三)1. 继承的定义与使用1.1 继承的实现1. 继承的定义与使用继承的作用:在已有基础上进行功能的扩充,提高代码的复用性关键字:extends子类也被成为派生类,父类也被称为超类(Super Class)1.1 继承的实现继承语法:class 子类 extends 父类举例:一个简单的继承实现...原创 2019-03-09 22:04:09 · 113 阅读 · 0 评论 -
Java类与对象概述(一)
文章目录1. 面向对象特征(三大基本特征)2. 类与对象的定义与使用2.1 基本概念2.2 定义和使用2.3 对象内存分析3. 封装和构造方法3.1 用private实现封装1. 面向对象特征(三大基本特征)面向对象最大特征:对现实生活可以进行抽象。举个简单的例子,把一个大象关进冰箱里,对于面向过程而言,首先把冰箱门打开,其次把大象放进去,最后关上冰箱门;但面向对象始终关心的是大象这个实体...原创 2019-03-04 20:17:00 · 497 阅读 · 0 评论 -
模板设计模式
模板设计模式开闭原则(OCP):一个软件实体如类、模块和函数应该对扩展开放、对修改关闭模板设计模式是抽象类的一个实际应用场景咖啡冲泡法:1.将水煮沸2.用沸水冲泡咖啡3.将咖啡倒进杯子4.加糖和牛奶茶冲泡法:1.将水煮沸2.用沸水浸泡茶叶3.把茶倒进杯子4.加柠檬举例:用代码实现咖啡和茶的类1.冲泡咖啡类class Coffee{ public final vo...原创 2019-03-14 21:58:41 · 133 阅读 · 0 评论 -
Java类与对象(二)
@TOC1. 代码块普通代码块构造块静态块同步代码块(与线程相关)1.1 普通代码块定义在方法中的代码块代码中的变量,只在当前块中有效一般代码较长,是为了防止变量名不重名,使用该块public class Test{ public static void main(String[] args){ { int x = 10; System.out.pri...原创 2019-03-08 09:12:51 · 285 阅读 · 0 评论 -
Java抽象类与接口
1.抽象类的定义和使用1.1 抽象类的定义和使用定义:抽象类只是在普通类的基础上扩充了一些抽象方法(只声明而未实现的方法)抽象类和抽象方法都要用abstract关键字来定义抽象类使用原则:1.所有的抽象类必须有子类2.抽象类的子类必须覆写所有的抽象方法(子类不是抽象类)3.抽象类的对象可以通过对象多态性利用子类为其初始化4.private与abstract不能同时使用举例:...原创 2019-03-16 18:33:27 · 142 阅读 · 0 评论 -
工厂设计模式
1. 工厂设计模式举例:某天,某同学去买电脑,一款电脑是Mac,一款是Lenovointerface Computer{ void printComputer();}class MacComputer implements Computer{ @Override public void printComputer() { System.out.pr...原创 2019-03-17 23:16:18 · 155 阅读 · 0 评论 -
IDEA的性能优化
1. IDEA 的运行环境IDEA 是用Java语言开发的IDEA 运行在JRE上(但是它本身自带JRE)它可以跨平台(Window, Linux, MacOS)2. IDEA 的性能优化选择电脑IDEA安装目录的bin目录,如:D:\IntelliJ IDEA 2018.1\bin;如果是选择的是64位安装的,则打开idea64.exe.vmoptions;如果选择的是32位...原创 2019-03-24 22:44:29 · 3771 阅读 · 0 评论 -
Java中String类详细描述
Java中String类详细描述1.String类的实例化方式2. String字符串比较3. String的匿名对象(没起名字的对象)4. 实例化区别5. 字符串不可变更1.String类的实例化方式直接赋值 String str = "hello world"; //str是一个对象的引用,所以“hello world”应该保存在堆内存中 System.out.println(s...原创 2019-04-11 21:01:59 · 301 阅读 · 0 评论 -
Object的方法使用
Object方法使用1. Object的方法1.1 public String toString() {} :获取对象信息1.2.public boolean equals(Object obj){} :对象比较2.接受所有引用型数据类型3.包装类Integer比较1. Object的方法Object:所有类的父类,可以接受所有类的对象1.1 public String toString()...原创 2019-04-26 23:00:30 · 505 阅读 · 0 评论 -
Java中泛型的基本使用
泛型的使用1.泛型的引入1.泛型的引入JDK1.5后引入泛型。假如需要定义一个描述坐标的程序类Point,需要提供两个属性x,y。对于这两个属性的内容可能有如下选择:x = 10, y = 20x = 10.1, y = 20.1x = 东经80度, y = 北纬20度因为Point中的x, y 属性有多种类型,所以采用Object去接收。举例:定义一个Point类/...原创 2019-05-30 23:55:17 · 377 阅读 · 0 评论 -
Java反射中Class对象获取方式
反射的基本使用1. 什么是反射2. Class类对象的三种获取方式3. 反射的应用简单工厂模式的应用1. 什么是反射反射:就是对象的反向处理。那么正的的操作是什么?当我们实例化一个对象,首先要创建一个类,new一个它的构造方法,就能实例化一个对象。它的处理流程就是:包名.类名;通过包名,在找到类名。反射中的“反”:就是根据对象来取得对象的来源信息。而这个反的的操作核心取决于Object的一...原创 2019-06-12 16:34:47 · 442 阅读 · 0 评论 -
String类的常用方法
String类的常用方法1. 字符与字符串1. 字符与字符串char < - > Stringchar[ ] - --> Stringpublic String(char[ ] value):将字符数组全部转换为字符串public String(char[ ] value, int offset, int len):将字符数组的部分内容转换为字符串...原创 2019-05-28 22:06:50 · 2760 阅读 · 0 评论 -
Java的异常体系
1.异常体系几乎所有的代码都会出现异常,为了保证程序在出现异常后可以正常执行完毕,最大化的减少损失的一种保护手段。Java中异常也是类。异常类继承关系:只有Throwable以及其子类能够进行异常捕获与处理。Error: 描述JVM运行时内部错误,栈溢出,堆溢出;Exception: 程序中普遍存在的,由于代码问题产生的;IOException: 由于输入输出产生的异常 ...原创 2019-05-28 23:43:22 · 158 阅读 · 0 评论 -
wait()和notify()的使用
wait()和notify()方法都是Object方法,这两个方法都必须搭配synchronized使用。必须拿到相应的锁才能调用,否则抛出IllegalMonitorStateException。wait()方法痴汉方法。持有锁的线程调用wait()方法后会一直阻塞,直到有别的线程调用notify()将其唤醒。public class TestWait { public sta...原创 2019-08-02 10:55:45 · 253 阅读 · 0 评论