Java6

(一)、内部类

在一个类的里面,再定义一个类
内部类表示的事物是外部类的一部分
内部类单独出现没有任何意义

特点:内部类可以直接访问外部类,包括私有
外部类访问内部类必须创建对象

(二)、内部类的分类

成员内部类:写在成员位置的,属于外部类的成员
可以被修饰:private,默认,public,protected,static
在jdk16后,在成员内部类里面可以定义静态变量

获取成员内部类对象:
在这里插入图片描述
外部类类名.this.变量名(获取外部类的变量值)

静态内部类:
在这里插入图片描述
创建格式:外部类名.内部类名 对象名=new 外部类名.内部类名();
调用非静态方法:先创建对象,用对象调用
调用静态方法:外部类名.内部类名.方法名();

局部内部类:
在这里插入图片描述

匿名内部类:隐藏了名字的内部类
可以写在成员位置,也可以写在局部位置
格式:
包含了实现/继承关系,方法重写,创建对象
在这里插入图片描述
匿名内部类指的是两个括号间的内容
整体是一个对象

(三)、Math

帮助我们进行数学运算的工具类
所有方法都是静态的

常用的方法:
在这里插入图片描述
abs有bug ,不能超过取值范围,不然结果会错误
pow第二个参数,一般传递大于1的正整数

(四)、System

工具类,提供一些与系统相关的方法

时间原点:
在这里插入图片描述
国内要加8小时
1秒=1000毫秒

常用的方法:
在这里插入图片描述
exit方法的形参
0:告诉虚拟机正常停止
非0:告诉虚拟机异常停止

currentTimeMillis返回的是从时间原点到现在过了的毫秒值

arraycopy方法:
1.如果数据源数组和目的地数组都是基本数据类型,那么两者类型必须保持一致
2.拷贝时,需要考虑数组长度
3.如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型

(五)、Runtime

表示当前虚拟机运行环境

常用方法:
在这里插入图片描述
获取对象不能直接new,要用getRuntime方法

cmd命令:
shutdown :关机
-s :默认1分钟之后关机
-s -t :指定关机时间
-a :取消关机操作
-r :关机并重启

(六)、Object

顶级父类,object类中所有的方法都能被子类访问

只有一个空参构造

常见的方法:一共11个方法
在这里插入图片描述
toString默认情况下返回的是地址值,要自己重写返回属性值
equals比较的是地址值是否相等
字符串中的equals会先判断是不是字符串,不是直接false

object的克隆是浅克隆

cloneable接口中没有抽象方法,为标记性接口
cloneable表示一旦实现,当前对象就可以被克隆

浅克隆:基本数据类型克隆属性值
引用数据类型克隆地址值

深克隆:引用数据类型时,会创建新的引用类型进行拷贝,拷贝属性值。
字符串会复用

想快速使用深克隆,可以用第三方工具类Gson

(七)、Objects

成员方法:
在这里插入图片描述
equals的细节:
方法会判断s1是否为null,是则直接返回false
如果不是,会再次调用equals
没有重写就比较地址值,重写比较属性值

(八)、BigInteger

构造方法:
在这里插入图片描述
对象一旦创建,内部记录的值不能改变。
只要进行运算,都是创建一个新的BigInteger对象

如果BigInteger表示的数字没有超出long的范围,可以用静态方法获取

第二种方式里的字符串必须是整数
第三种方式,字符串中的数字必须和进制吻合

valueOf中 -16-16提前创建好了,多次获取不会创建新的

常见的方法:
在这里插入图片描述
存储上限:
在这里插入图片描述

(九)、BigDecima

通过传递double类型的小数可能会不精确
通过传递字符串表示的小数来创建对象,精确

valueOf静态方法创建对象
注意:如果没有超过double的取值,建议用静态方法
如果超过了double的取值,建议用构造方法
如果传递的是0-10的整数数字,那么不会重新new

成员方法:
在这里插入图片描述
up舍入模式:远离0舍入
down舍入模式:向0舍入
ceiling:向正无穷大舍入
floor:向负无穷大舍入
half_up:四舍五入
half_down:如果大于0.5,则up舍入

底层:遍历每一个字符,找到对应的ASCII码用byte数组存储
在这里插入图片描述

(十)、正则表达式

可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性
可以在一段文本中查找满足要求的内容

字符类:
在这里插入图片描述
预定义字符:
在这里插入图片描述
数量词:
在这里插入图片描述

matches 方法判断是否与正则表达式匹配,匹配返回true
要求两个范围的交集,使用&&,一个&仅表示一个&符号

\表示转义字符,两个\表示一个\

本地爬虫和网络爬虫

Pattern:表示正则表达式
Matcher:文本匹配器,按照正则表达式的规则去读取字符串,从头开始读取
在大串中寻找符合规则的子串

  String str="Java自从问世以来";

        //获得正则表达式的对象
        Pattern p=Pattern.compile("Java\\d{0,2}");

        //获取文本匹配器的对象
        //m:文本匹配器的对象
        //str:大串
        //p:规则
        //m要在str中寻找符合p规则的小串

        Matcher m=p.matcher(str);

        //寻找是否有满足的子串,有返回true,没有false。在底层会记录子串的起始索引和结束索引+1
        boolean b=m.find();

        //方法会根据find方法记录的索引进行字符串的截取,会把截取后的小串返回
        String s1=m.group();

条件爬取:

package days2;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class pc1 {
    public static void main(String[] args) {
        String str="Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11,"+
                "因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在不久Java17也会逐渐登上历史舞台";

        //定义正则表达式,
        // ?相当于Java,=表示Java后面跟随的数据
        // 但是获取的时候还是前半部分
    String regex="Java(?=8|11|17)";

        Pattern p=Pattern.compile(regex);
        Matcher m=p.matcher(str);
        while (m.find()){
            System.out.println(m.group());
        }
    }
}

(十一)、Date

Date:时间
SimpleDateFormat:格式化时间
Calendar: 日历

世界标准时间:原子钟
中国时间+8小时

Date类:是一个JDK写好的标准javabean,用来描述时间,精确到毫秒
利用空参构造创建对象,表示系统当前时间
有参构造创建对象,表示指定时间
setTime(long)设置/修改毫秒值
getTime 获取时间毫秒值

(十二)、SimpleDateFormat

作用:
1.格式化:把时间变成我们喜欢的格式
2.解析:把字符串表示的时间变成Date对象

构造方法:
在这里插入图片描述
成员方法:
在这里插入图片描述
格式化时间常用模式:
在这里插入图片描述

(十三)、Calendar

是抽象类,不能直接创建对象。
可以单独修改年月日

常用方法:
在这里插入图片描述
通过getInstance获取子类对象
底层:根据不同时区,获取不同的日历对象
获取月份是0-11
星期:1是星期天

get传的是数组的索引。纪元,年,月,日。。共17个储存在一个数组中
底层中索引有代表的常量

(十四)、jdk8 新增时间类

ZoneId:时区
在这里插入图片描述

Instant:时间戳
在这里插入图片描述
isbefore:判断调用者的时间是否在参数时间的前面
isafter:判断调用者的时间是否在参数时间的后面

ZoneDateTime:带时区的时间
在这里插入图片描述

DateTimeFormatter:用于时间的格式化和解析
在这里插入图片描述
LocalDate:年,月,日
LocalTime:时,分,秒
LocalDateTime:年,月,日,时,分,秒

在这里插入图片描述
LocalDateTime可以转换
在这里插入图片描述
Duration:时间间隔(秒,纳秒)
Period:时间间隔(年,月,日)
ChronoUnit:时间间隔(所有单位)

.between()参数2减参数1

(十五)、包装类

基本数据类型对应的引用数据类型(用对象将基本数据类型包装起来)

char 对应的是 Character
int 对应的是 Integer
其他直接首字母大写

获取Integer对象
在这里插入图片描述
包装类-128到127已经提前创建好了

jdk5以后:
新增自动装箱,自动拆箱
直接使用Integer进行赋值,不需要new 或调用方法

成员方法:
在这里插入图片描述

Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet.Applet 简单实现!~ 网页表格组件 GWT Advanced Table GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的定义 4. 使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据 5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端 JOpenID JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值