java
文章平均质量分 61
java
八十岁老将
嘿嘿
展开
-
java定时器Timer的使用
Timer是一种定时器工具,用来在一个后台线程计划执行指定任务,可以计划执行一个任务一次或反复多次。TimerTask是个抽象类,它的子类代表一个可以被Timer计划的任务。具体的任务在TimerTask中run接口中实现。通过Timer中的schedule方法启动定时任务。1、运行定时器启动一个定时器实质是启动一个线程在指定日期运行定时器任务,只运行一次如果date日期在今天之前,则启动定时器后,立即运行一次定时任务run方法如果date日期在今天之后,则启动定时器后,会在指定的将来日.原创 2021-05-03 20:51:46 · 518 阅读 · 0 评论 -
java学习笔记83:lambda表达式
在 Java 8 以前,若我们想要把某些功能传递给某些方法,总要去写匿名类。以前注册事件监听器的写法与下面的示例代码就很像:manager.addScheduleListener(new ScheduleListener() { @Override public void onSchedule(ScheduleEvent e) { // Event listener implementation goes here... }});123456原创 2021-01-24 12:10:53 · 144 阅读 · 0 评论 -
java学习笔记82:枚举
1、概念enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下:enum Color { RED, GREEN, BLUE }如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚举类型举例,它的枚举常量依次为 RED:0,GREEN:1,BLUE:2。枚举的好处:可以将常量组织起来,统一进行管理。枚举的典型应用场景:错误码、状态机等。2、枚举类型的本质尽管 enum 看起来原创 2021-01-24 12:10:17 · 381 阅读 · 0 评论 -
java学习笔记81:动态代理
Java 动态代理动态代理在Java中有着广泛的应用,比如Spring AOP、Hibernate数据查询、测试框架的后端mock、RPC远程调用、Java注解对象获取、日志、用户鉴权、全局性异常处理、性能监控,甚至事务处理等。Java中两种常见的动态代理方式:JDK原生动态代理和CGLIB动态代理。1、代理模式代理模式:给某一个对象提供一个代理,并由代理对象来控制对真实对象的访问。代理模式是一种结构型设计模式。代理模式角色分为 3 种:Subject(抽象主题角色):定义代理类和真实主题的公共原创 2021-01-24 12:09:44 · 108 阅读 · 1 评论 -
java学习笔记75:反射
参考1. 简介定义:Java语言中 一种 **动态(运行时)**访问、检测 & 修改它本身的能力作用:动态(运行时)获取类的完整结构信息 & 调用对象的方法类的结构信息包括:变量、方法等正常情况下,Java类在编译前,就已经被加载到JVM中;而反射机制使得程序运行时还可以动态地去操作类的变量、方法等信息1.1 优点灵活性高。因为反射属于动态编译,即只有到运行时才动态创建 &获取对象实例。编译方式说明:静态编译:在编译时确定类型 & 绑定对象。原创 2021-01-23 13:48:42 · 93 阅读 · 0 评论 -
java学习笔记74:类加载器
1、类加载器概述在开发中会遇到 java.lang.ClassNotFoundException 和 java.lang.NoClassDefError,想要更好解决这类问题,或者在一些特殊的应用场景,比如需要支持类的动态加载或需要对编译后的字节码文件进行加密解密操作,那么需要你自定义类加载器,因此了解类加载器及其加载机制成为了Java开发必备技能之一。2、四种类加载器2.1 引导类加载器(Bootstrap Classloader),又称为根类加载器 它负责加载 Java 的核心库(JA原创 2021-01-23 13:46:22 · 104 阅读 · 0 评论 -
java学习笔记73:自定义注解
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。1、内置的注解Java 定义了一套注解,共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.ann原创 2021-01-23 13:45:08 · 262 阅读 · 0 评论 -
java学习笔记59:io流
1.流的定义及分类流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输操作都是以“流”的方式进行。设备可以是文件,网络,内存等。输出流:将数据从内存写入到文件或网络这种输出设备的流称为。输入流:将数据从文件或网络输入到内存的流叫中。java程序运行在内存中,所以java程序变量代表内存数据。java中的流按照数据处理单位可以分为字节流和字符流两大类。1.1 字节流表示以字节(8位)为单位从流(stream)读取数据或者往流(stream)中写入数据,通常用来处理二进制文原创 2021-01-22 14:26:58 · 110 阅读 · 0 评论 -
java学习笔记58:File类介绍使用
1、字段static String pathSeparator //与系统相关的路径分隔符,为方便起见,表示为字符串。 static char pathSeparatorChar //与系统相关的路径分隔符。 static String separator //系统相关的默认名称分隔符,为方便起见,表示为字符串。 static char separatorChar //系统相关的默认名称分隔符。 2、构造方法File(File parent, String child) //从父抽象路原创 2021-01-21 17:08:50 · 193 阅读 · 0 评论 -
java学习笔记57:异常
1、异常的分类jvm默认处理异常的方式就是打印出来从后往前看Error:是程序中无法处理的错误,表示运行应用程序中出现了严重的错误。此类错误一般表示代码运行时JVM出现问题。通常有Virtual MachineError(虚拟机运行错误)、NoClassDefFoundError(类定义错误)等。比如说当jvm耗完可用内存时,将出现OutOfMemoryError。此类错误发生时,JVM将终止线程。非代码性错误。因此,当此类错误发生时,应用不应该去处理此类错误。Exception::程序本身可原创 2021-01-21 17:08:23 · 138 阅读 · 0 评论 -
java学习笔记56:静态导入、可变参数
1、静态导入import static 包名.类名.静态成员变量;import static 包名.类名.静态成员函数;2、可变参数适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。只能出现在参数列表的最后;…位于变量类型和变量名之间,前后有无空格都可以;调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数可变参数的核心是将参数封装为数组,但是传入null时并不是只含有一个null元素的数组,而是null。...原创 2021-01-21 17:07:36 · 79 阅读 · 0 评论 -
java学习笔记55:集合遍历
遍历集合类的三种方式:Iterator迭代器方式优点:迭代器提供了操作元素的方法 可以在遍历中相应地操作元素缺点:运行复杂,性能稍差,效率相对其他两种遍历方式较低增强for循环优点:代码简洁,不易出错。缺点:只能做简单的遍历,不能在遍历过程中操作(删除、替换)数据集合。并发修改异常普通for循环优点:效率最高,遍历快,可以根据自定计数器操作元素缺点:不适用所有集合,适用范围小。并发修改异常各种遍历方式适用场合:1、传统的for循环遍历,基于计数器的:顺序存原创 2021-01-21 17:06:32 · 143 阅读 · 0 评论 -
java学习笔记51:集合类介绍
1、集合框架图2、集合与数组的区别长度区别:集合可变,数组固定。内容区别:集合只能是引用类型,数组可以是基本类型,也可以是引用类型。元素内容区别:集合可以存储不同类型(一般存储一种类型),数组只能存储同一种类型。3、Collection的常用方法boolean add(E e) //在集合末尾添加元素boolean remove(Object o) //若本类集中有值与O的值相等的元素,则删除该元素,并返回truevoid clear() //清楚本类集中的所有元素,调用完该方法后原创 2021-01-21 17:04:21 · 130 阅读 · 0 评论 -
java学习笔记50:泛型
泛型1. 概述泛型,即“参数化类型”。将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。2. 一个例子一个被举了无数次的例子:List arrayList =原创 2021-01-21 17:03:24 · 131 阅读 · 0 评论 -
java学习笔记49:Date、DateFormat、SimpleDateFormat的基本使用
1、Date类的使用类Date表示特定的瞬间,精确到毫秒public Date() //获取当前时间,创建对象public Date(long date) //根据给定的毫秒值创建日期对象public long getTime() //日期转毫秒值public void setTime(long time) //毫秒值转日期boolean before(Date when) //测试此日期是否在指定日期之前,当且仅当此Date对象表示的瞬间比when表示的瞬间早,才返回t原创 2021-01-21 17:02:51 · 192 阅读 · 0 评论 -
java学习笔记46:Runtime、Process、ProcessBuilder的使用
1、Runtime类的使用Runtime 类主要描述的是应用程序运行的环境每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。Runtime run = Runtime.getRuntime(); //获取应用运行环境的对象exit() //推出虚拟机long freeMemory() //获取可以内存数gc() //调用垃圾回收器程序,但是调用该方法的时候不会马上就运行gclong maxMemory(原创 2021-01-20 13:32:34 · 1115 阅读 · 0 评论 -
java学习笔记45:System类的使用
System类的使用system中代表程序所在系统,提供了对应的一些系统属性信息和系统操作。system类不能手动创建对象System类中的都是静态方法long currentTimeMillis() //获取当前时间戳,单位为毫秒,获取当前系统时间与1970年01月01日00:00点之前的毫秒差值long nanoTime() //获取当前时间戳,单位为纳秒lineSeparator() //行分隔符,等同于System.getProperty("line.sepa原创 2021-01-20 13:31:57 · 232 阅读 · 2 评论 -
java学习笔记42:Pattern类和Matcher
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式。然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串..原创 2021-01-20 13:29:52 · 236 阅读 · 0 评论 -
java学习笔记41:正则表达式
1、普通字符普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。字符描述[ABC]匹配 [ABC] 中的所有字符,例如 [aeiou] 匹配字符串 “google runoob taobao” 中所有的 e o u a 字母。[^ABC]匹配除了 [ABC] 中字符的所有字符,例如 [^aeiou]匹配字符串 “google runoob taobao” 中除了 e o u a 字母的所有字母。[原创 2021-01-20 13:29:02 · 122 阅读 · 0 评论 -
java学习笔记32:装箱与拆箱
1、包装类Java有8种基本数据类型:整型(byte、short、int、long)、浮点型(float、double)、布尔型boolean、字符型char,相对应地,Java提供了8种包装类Byte、Short、Integer、Long、Float、Double、Boolean、Character。包装类创建对象的方式就跟其他类一样。2、自动装箱、自动拆箱实际上是基本数据类型向包装类的转换。Integer num1 = new Integer(1); //基本数据类型转为包装类in原创 2021-01-19 13:09:25 · 92 阅读 · 0 评论 -
java学习笔记31:Arrays类介绍使用
1、Arrarys类介绍与使用void sort(数组) :升序排序数组,串行排序,单线程,适用于规模较小的数组void Arrays.parallelSort(Object[ ] a) :对数组进行升序排序,并行排序,适用于数组的规模更大int binarySearch(数组,被查找的元素) :返回被查找元素的索引,如果元素不存在,则返回的是(-插入点-1),也就是说它会根据你需要查找的元素应该存在的位置索引,将该索引值再减去1即可。int binarySearch(Object[ ] a,int原创 2021-01-19 13:08:33 · 118 阅读 · 0 评论 -
java学习笔记30:String、StringBuffer、StringBuilder
1、String中的常用方法判断功能的方法:boolean equals (Object anObject) :将此字符串与指定对象进行比较。boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写。例如:if(s1.equals(s2)) {}注意:2个字符串使用==比较运算符,比较的是地址值,如果使用的是equals方法,比较的是字符串内容是否相等获取功能的方法:int length () :返回此字符串的原创 2021-01-19 13:06:54 · 189 阅读 · 0 评论 -
java学习笔记29:object类、什么是API
1、object类Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-glXpJH0W-1611032687781)(D:\u(backups)]\note\java\img\29-1.gif)Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 O原创 2021-01-19 13:05:44 · 139 阅读 · 0 评论 -
java学习笔记28:eclipse基本配置操作
1、eclipse界面设置Window→reset perspective //恢复默认视图布局window→perspective→Customer perspective→Menu Visibility //修改右键new的选项window→preferences→general→appearance→colors and fonts→右边,basic→Text font→edit进行编辑//设置字体,大小window→perspective→Customer perspective→Tool原创 2021-01-18 15:59:57 · 173 阅读 · 0 评论 -
java学习笔记27:包与内部类
1、包的作用字节码.class分类存放1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enum原创 2021-01-18 15:16:35 · 165 阅读 · 0 评论 -
java学习笔记26:接口与抽象类.md
1、修饰符4种权限修饰符,private public 默认(本包)protected状态修饰符:static final抽象修饰符:abstract修饰符作用default在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。private在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)public对所有类可见。使用对象:类、接口、变量、方法protected对同一包内的类和所有子类可见。使用对象:变量、方原创 2021-01-18 14:29:37 · 119 阅读 · 1 评论 -
java学习笔记25:继承与多态
1、继承继承的主要作用在于,在已有基础上继续进行功能的扩充。好处:提高代码复用,提高可维护性弊端:耦合性增强了java支持单继承不支持多继承,支持多层继承,只继承非私,不继承构造方法,不要为部分功能继承。在进行继承的时候,子类会继承父类的所有结构(包括私有属性、构造方法、普通方法)显示继承:所有非私有操作属于显示继承(可以直接调用)。隐式继承:所有私有操作属于隐式继承(不可以直接调用,需要通过其它形式调用(get或者set))。语法:class 子类 extends原创 2021-01-18 14:10:20 · 111 阅读 · 0 评论 -
java学习笔记24:文档注释与代码块
1、java文档注释 Java 支持三种注释方式。前两种分别是 // 和 /* */,第三种被称作说明注释,它以 /** 开始,以 ***/**结束。说明注释允许你在程序中嵌入关于程序的信息。你可以使用javadoc工具软件来生成信息,并输出到HTML文件中。1.1javadoc 标签标签描述示例@author标识一个类的作者@author description@deprecated指名一个过期的类或成员@deprecated description{原创 2021-01-18 13:52:39 · 554 阅读 · 0 评论 -
java学习笔记23:对象内存图
类 :一组相关属性和行为的集合。 狗对象 :该类事物的具体体现。 小白白.class文件从硬盘中加载进入内存中,JVM虚拟机自动编译并调用main()方法到栈内存中。源文件,字节码文件放在硬盘,运行在内存,如果名有任何应用指向该对象,那么就变成了垃圾,java的垃圾回收机制。一个对象内存图:两个对象内存图:...原创 2021-01-18 13:18:14 · 121 阅读 · 0 评论 -
java学习笔记22:面向对象之封装
1、面向对象与面向过程 理解 例如:面向过程就是,小明肚子饿了去KFC买了一个汉堡,接着又去麦当劳买了一瓶汽水,最后的结果就是小明吃了汉堡喝了汽水。面向对象就是,在这个过程我们可以把小明看成一个对象,我们都可以把上面的一系列动作看成是小明这个对象的方法,而我们要解决小明饿了的问题我们只需要调用小明的方法就行了,比如去xx、买xx等等。至于说小明怎么实现这些方法的你没有必要知道,你所要知道的就是结果:小明解决了饥饿。这就是面向对象。2、面向对象的设计就是管理维护对象的关系3、特点封装,继承,多态原创 2021-01-18 13:07:01 · 107 阅读 · 0 评论 -
java学习笔记21:参数传递
1、形参与实参形式参数:是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数,简称“形参”。实际参数:在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”,简称“实参”。2、值传递和引用传递值传递:是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。引用传递:是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。3、Java中的值传递和引用传递基原创 2021-01-18 10:05:04 · 105 阅读 · 0 评论 -
java学习笔记20:内存
转Java内存区域(运行时数据区域)和内存模型(JMM)Java 内存区域和内存模型是不一样的东西,内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分。而内存模型(Java Memory Model,简称 JMM )是定义了线程和主内存之间的抽象关系,即 JMM 定义了 JVM 在计算机内存(RAM)中的工作方式,如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java运行时数据区域众所周知,Java 虚拟机有自动内存管理机制,如果出现内存泄漏和溢出方面的问题,转载 2021-01-18 09:52:29 · 115 阅读 · 0 评论 -
java学习笔记19:数组详解
1、数组的初始化数组就是同一种类型数据的集合。其实数组就是一个容器。数组语法示例一维数组元素类型[] 数组名 = new 元素类型[元素个数或数组长度];int[] arr = new int[5];元素类型[] 数组名 = new 元素类型[]{元素,元素,……};int[] arr = new int[]{3,5,1,7};元素类型[] 数组名 = {元素,元素,……};int[] arr = {3,5,1,7};二维数组元素类型[][] 数原创 2021-01-18 01:22:32 · 146 阅读 · 0 评论 -
java学习笔记18:方法与方法重载
1、方法提高代码的复用性修饰 返回 名(参数){ 语句 ; return ;}2、方法的重载方法重载(Overloading)的定义:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。同名,参数不同,与返回值类型无关参数个数不同参数类型不同参数顺序不同...原创 2021-01-15 17:16:44 · 98 阅读 · 0 评论 -
java学习笔记17:流程控制结构
1、注释//单行 /*多行 *//** 文档注释*/2、java键盘录入数据import java.util.ScannerScanner sc = new Scanner(System.in);int x = sc.nextInt();System.out.println(x);3、流程控制1)顺序结构顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。2)选择结构选择结构用于判断给定的条件,根据判断的结果判断某些原创 2021-01-15 17:06:24 · 104 阅读 · 1 评论 -
java学习笔记16:基本编码介绍
基本编码介绍GB2312、GBK、UTF-8、UTF-16 这几种格式都可以表示一个汉字,选择哪种编码格式来存储汉字就要考虑到其它因素,是存储空间重要还是编码的效率重要。java默认的编码是unicode编码。0、UTF-16说到 UTF 必须要提到 Unicode(Universal Code 统一码),ISO 试图想创建一个全新的超语言字典,世界上所有的语言都可以通过这本字典来相互翻译。可想而知这个字典是多么的复杂,关于 Unicode 的详细规范可以参考相应文档。Unicode 是 Java 和原创 2021-01-15 10:40:20 · 114 阅读 · 0 评论 -
java学习笔记15:java运算符详解
1、算数运算符操作符描述例子+加法 - 相加运算符两侧的值A + B 等于 30-减法 - 左操作数减去右操作数A – B 等于 -10*乘法 - 相乘操作符两侧的值A * B等于200/除法 - 左操作数除以右操作数B / A等于2%取余 - 左操作数除以右操作数的余数B%A等于0++自增: 操作数的值增加1B++ 或 ++B 等于 21(区别详见下文)–自减: 操作数的值减少1B-- 或 --B 等于 19(区别详见原创 2021-01-14 20:03:18 · 356 阅读 · 0 评论 -
java学习笔记14:常量优化机制
常量优化机制 给一个变量赋值,如果等于号的右边是常量的表达式并且没有一个变量,那么就会在编译阶段计算该表达式的结果,然后判断该表达式的结果是否在左边类型所表示范围内,如果在,那么就赋值成功,如果不在,那么就赋值失败。但是注意如果一旦有变量参与表达式,那么就不会有编译期间的常量优化机制1、byte/short/char的常量优化先判断值是否是常量, 然后再看值是否在该数据类型的取值范围内只有byte, short, char 可以使用常量优化机制,转换成int类型(这个你换成其他基本数据类型就不适原创 2021-01-14 19:44:10 · 294 阅读 · 0 评论 -
java学习笔记13:数据类型与类型转换
1、java中的数据类型数据类型默认值大小/字节byte 字节类型01short 短整形02int 整数类型04long 长整型0L8float 单精度浮点型0.0f8double 双精度浮点型0.0d8char 字符型‘u0000’2(一个字符能存一个汉字String (or any object) 引用类型nullbooleanfalse未明确大小,理论上是1/8声明:类型 命名 = 值原创 2021-01-14 17:52:10 · 95 阅读 · 0 评论 -
java学习笔记12:进制与进制转换、原反补
1、进制几进制就是逢几进一二进制:0b110八进制:以0开头的十六进制:0x开头的 0-f2、进制转换1)十进制转x进制:辗转相除法,几进制就除几,倒取余 比如十转二进制的辗转相除2)x进制转十进制:M0*x^(n-1)+M1*x^(n-2)……3)2转8取3合一法: 这文章里面的2进制转8进制就是取3合一4)2转16取4合一法:这文章里面的2进制转16进制就是取4合一5)二进制又叫做8421码从左到右一次对应的数,最好记住128 64 32 16 8 4 2 1...原创 2021-01-14 17:24:53 · 142 阅读 · 0 评论