![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java 学习
文章平均质量分 55
大熊猫的博客
这个作者很懒,什么都没留下…
展开
-
java的枚举
枚举定义有限数量的同类常量如:级别:低、中、高。季节:春、夏、秋、冬。如线程类的状态:new (未启动线程)-runnable(执行中线程)-blocked(被阻塞等待监视器锁定)-waiting(无限等待另一个线程执行)-timed_waiting(等待另一个线程执行最多等待时间操作)-terminated(已退出线程)注意事项:一旦定义了枚举,最好不要修改里面的值。 默认继承是java.lang.Enum类而不是Object类。 枚举类不能有子类,因为其枚举类默认被final原创 2021-09-08 21:03:42 · 50 阅读 · 0 评论 -
JAVA特性
了解Java 发展史和其特点特性。 标准版(JavaSE):各应用平台的基础,桌面开发和低端商务应用的解决方案。前期学习企业版(JavaEE):以企业为环境开发应用程序的解决方案。(建议开发方向)中后期学习微型版(JavaME):致力于消费产品,嵌入式设备最佳方案。少特点:面向对象编程,平台无关性(跨平台,一次编译,到处可运行),健壮性(吸收C/C++的优点),较高的安全性(自动回收机制(GC),强制类型检查(instanceof),取消指针)跨平台原理:Java源代码编.原创 2021-08-10 15:00:39 · 51 阅读 · 0 评论 -
java的数据类型
变量变量是系统为程序分配的一块内存单元。变量分类:按数据类型划分为基本数据类型、引用数据类型。基本数据类型(8大基本数据类型)整数数值型: 类型 类型关键字 占用字节数 取值范围 定义方式 整型 byte 1 -2^7~2^7-1 byte a = 1;默认值:0原创 2021-08-19 15:06:36 · 52 阅读 · 0 评论 -
Scanner类
Scanner类常用方法:nextInt();接收键盘输入int类型数据返回一个int类型。next();接收任何数据类型,返回一个String类型(常用)。nextLine();接收一行输入。一般不与next一起用。hasnextInt()判断是否为int类型的输入值执行结构顺序结构:是一种基本的控制结构,按语句出现的顺序执行操作,java中代码执行就是顺序结构。分支结构:又称为选择结构,根据条件与否执行操作。if(判断){执行语句}else if(判断){执行原创 2021-08-19 15:08:18 · 53 阅读 · 0 评论 -
数组声明方式
数组数组是同个数据类型多个数据的容器,数组下标从0开始,数组的长度-1结束。创建数组方式:数据类型[] 名称={数据1,数据2,数据3,....,数据n};创建数组时定数据。静态创建 数据类型[] 名称=new 数据类型[数组长度]; 指定数组长度,数据值默认为0;动态创建。 不常用的方式: int[] nums; nums=new int[长度]。不能直接nums={}。int[] nums=new int[]{数据1,数据2,数据3,数据4};冒泡排序:俩俩比较换位。比较轮数...原创 2021-08-19 15:09:17 · 1176 阅读 · 0 评论 -
java代码块
代码块普通代码块{执行内容}编写在顺序执行的代码流程中的代码块构造代码块{执行内容}构造代码块不是构造方法,随着对象的创建会执行一次,且在构造方法之前。适用于在对象创建时必须执行的操作写在构造代码块。无论用户调用哪一个构造方法创建对象都会执行构造代码块。同步代码块synchronized(obj){//需要被同步的代码块}其中,obj 称为同步监视器,也就是锁,原理是:当线...原创 2021-08-19 15:18:51 · 44 阅读 · 0 评论 -
面向对象思想
面向对象思想三大思想:面向对象分析(OOA) 面向对象设计(OOD) 面向对象程序(OOP)三大特征:封装性:所有的内容对外部不可见。 继承性:将其他功能继承下来继续发展。 多态性:方法重载本身是一个多态性体现。面向对象是把相关数据和方法组织为一个整体来看待。面向对象到面向过程,是程序员思想上从执行者到指挥者的转变。类与对象关系:类表示一个共性的产物,对象是个性的产物,个体的特征。类通过对象使用,对象的操作在类中定义。类由属性和方法组成:属性:相当于人(对象)原创 2021-08-19 15:11:33 · 77 阅读 · 0 评论 -
面向对象的理解
什么是面向对象面向对象的主要思想是:封装、继承、多态、抽象。封装:程序设计追求“高内聚,低耦合”。封装有俩层含义:1.把对象的属性和行为看成不可分割的一个整体。2.把外界不需要知道的信息隐藏起来,只提供外界需要用到的信息。封装就是模块化,把不同的功能,封装在不同的模块里。一个好的设计,应该有好的封装思路。这个不属于框架设计里了,属于编程人员对于功能的把握。以及对于封装的理解。在java中提供了4中修饰符,来实现封装。分别是default,public,private和protected。每一原创 2021-07-18 14:37:41 · 83 阅读 · 0 评论 -
java内部类
将类定义在一个类里面或一个方法里面。广泛意义上有四种内部类:成员内部类。可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员),当拥有和外部类同名的成员变量或者方法时,会发生隐藏现象,默认访问内部类成员(就近),如果要访问外部类成员时需要 类名 . this . 。局部内部类。定义在一个方法或一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问权限仅限于方法内或者该作用域内。不能有权限修饰符。匿名内部类。继承一个类或者实现一个接口,不可兼得,没原创 2021-08-28 16:14:39 · 45 阅读 · 0 评论 -
java异常
异常处理异常是在程序中导致程序中断运行的一种指令流,在运行时产生错误而导致的。异常体系结构:在java中存在一个父类Throwable,存在俩个子类error,exceptionError:Exception:分俩种:受检异常:非运行异常SQLException IOException ClassNotFoundException ...非受检异常:运行时异常(RuntimeException)NullPointerException(空.原创 2021-08-28 17:00:17 · 50 阅读 · 0 评论 -
java递归
递归递归算法是直接或间接调用自身方法的算法。例子阶乘/*** @param a 输入数字* @return 返回a的阶乘*/static int number(int a){//需要有一个方法停止条件if (a<=1)return a;return a*number(a-1);}...原创 2021-08-28 16:58:29 · 53 阅读 · 0 评论 -
java泛型
泛型泛型只在编译阶段起效,在类加载时会擦拭成为相应的类型。用在类的泛型:class User<T>{T date;T getDate(){return date;}}在使用时传入一个类型,类里面使用T修饰的会成为String类型。接口用法一样。User<String> user = new User<>();用在方法上的泛型:T getDate(T t){return t;}可以...原创 2021-08-28 16:57:28 · 40 阅读 · 0 评论 -
java的类集
集合类集的三大接口:Iterator、Collection、MapCollectionCollection有三大子接口:List、Set、Queue单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素不可重复。List接口的主要实现类有java.util.ArrayList和java.util.LinkedList,Set接口的主要实.原创 2021-08-30 00:33:53 · 161 阅读 · 0 评论 -
迭代器(Iterator)
1.迭代器Iterator提供了很多对集合元素进行迭代的方法。每一个集合类都包括了可以返回迭代器实例的迭代方法。迭代器可以在迭代过程中删除底层集合的元素,并不是直接调用集合的remove(Object obj)删除,而是通过迭代器的remove()方法进行删除集合元素。2....原创 2021-08-06 01:12:27 · 71 阅读 · 0 评论 -
javaIo流
File文件对象,不一定存在。过滤器:FileFilter接口-->需要实现accept方法返回ture代表此文件不过滤。绝对路径:从盘符开始,是一个完整的路径,如:c://a.tet相对路径:相对于项目的目录路径,是一个便捷路径。IO流计算机存储是以2进制形式的。分类:字节流:InputStream(输入流)、OutputStream(输出流)字符流:Reader(输入流)、Writer(输出流)Close()关闭流->不用的时候需要进行关闭原创 2021-08-31 15:45:51 · 71 阅读 · 0 评论 -
序列化与反序列化
序列化是指java对象转换为字节序列的过程,反序列化是从文件中取出经过序列化的对象。Serializable接口,用于标记此类可序列化,该类的所有属性都需要实现了该接口。//序列化与反序列化 /*序列化,序列化类的属性都要实现序列化 A a = new A("name","金苹果"); ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("D://a.txt")); //NotSe原创 2021-08-31 15:38:35 · 44 阅读 · 0 评论 -
线程与进程
进程:进程是内存运行的应用程序,每个进程都有一个独立的内存空间。线程:线程是进程的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行,一个进程最少有一个线程。线程实际上是在进程的基础上进一步划分,一个进程启动后 ,里面的若干执行路径又可以划分成若干个线程。线程的调度分时调度:所有线程轮流使用CPU使用权,平均分配每个线程占用CPU时间。抢占方式调度:优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),java使用的为抢占式调度原创 2021-09-02 17:49:34 · 4583 阅读 · 0 评论 -
隐式锁和显式锁的区别(Synchronized和Lock的区别)
管理者的不同synchronized是Java中的关键字,是由jvm来管理的。Lock是java的一个接口。需要调用对应的类来进行加锁操作。使用方法不同synchronized是隐式锁;为需要加锁的代码块添加synchronize关键字,且需要传入一个标识当前是一个线程的标识:new一个Object对象传入。 使用synchronize关键字修饰需要加锁的方法。lock是显式锁:需要手动调用lock()方法和unlock()方法。等待是否中断隐式锁synchronize修饰原创 2021-09-02 19:06:25 · 260 阅读 · 0 评论 -
多线程的死锁
死锁死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。在两个或多个任务中,如果每个任务锁定了其他任务试图锁定的资源,此时会造成这些任务永久阻塞,从而出现死锁。例如:事务A 获取了行 1 的共享锁。事务 B 获取了行 2 的共享锁。虽然进程在运行过程中,可能发生死锁,但死锁的发生也必须具备一定的条件,死锁的发生必须具备以下四个必要条件。互原创 2021-09-02 22:14:10 · 325 阅读 · 0 评论 -
java四大线程池
线程池的好处降低资源消耗、提高响应速度、提高线程的可管理性。缓存线程池CahcedThreadPool长度无限制。执行流程:判断线程池是否存在空闲线程。 存在则使用。 不存在,则创建线程,放入线程池,然后使用。定长线程池FixedThreadPool长度是指定数值任务加入后的执行流程:判断线程池是否存在空闲线程。 存在则使用。 不存在空闲线程,且线程池未满的情况下,则创建线程并放入线程池,然后使用。 不存在空闲线程,且线程池已满的情况下,则等待线程池存在空闲线程。原创 2021-09-03 12:32:56 · 611 阅读 · 0 评论 -
XML与JSON
XML与JSONXML可扩展标记语言平台无关性,独立的标记语言。 自我描述性。用处如下网络数据传输。 数据存储。 配置文件。Xml文件.xml文件是保存xml数据的一种方式,xml数据也可以存放在内存(如在内存构建xml数据)。Xml语法格式:<?xml version = “1.0” encoding=”UTF-8”?>CDATA:<![CDATA[" 开始,由 "]]>,可以不让xml解析为标记。解析xml的方式SAX解析SAX解原创 2021-09-07 23:15:47 · 77 阅读 · 0 评论 -
java注解
注解注释不会编译到文件中,注解可以编译到文件中。注解的作用:编译格式检查。 反射中解析。 生成帮助文档。 跟踪依赖类。 方法、变量、参数、包都可以添加注解。内置注解:@Override重写 @Deprecater 废弃 @SafeVarargs 忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。 @FunctionalInterface: 函数式接口。Java 8 开始支持,标识一个匿名函数或函数式接口。 @Repeatable:标识某注解可以在同一个声明上使用多次原创 2021-09-08 21:04:46 · 228 阅读 · 0 评论 -
java的反射
反射在运行状态中,获取任意一个类的结构,创建对象,得到方法,执行方法,属性。类加载三种类加载器:BoostrapClassLoader引导启动类加载器;使用C++编写主要加载/lib的类库,无法被应用直接应用。 ExtensionClassLoader扩展类加载器;主要加载/lib/ext类库 ApplicationClassLoader应用类加载器;加载classpath目录下的所有jar和class文件。双亲委派、进行类加载时,会转发类加载请求到父类加载器,当父类加载器范围原创 2021-09-08 21:06:18 · 63 阅读 · 0 评论