T-3-java核心API-基础类
- Java API是java(Oracle)提供的系统标准API。
- 第三方的jar包API,如:JUnit.jar。
- 可以自己开发一些API。
- 一般情况下任何技术都有现成的API。
- java源代码中,/**...*/可以用于生成手册。
- 在文档中,可以使用@定义手册的段落,格式:@author @see
- 利用java开发工具命令javadoc可以生成JavaHTML版本的手册。(也可以用eclipse的图形界面的export命令调用javadoc生成手册)
- javadoc命令是利用JDK的命令,需要配置好JDK以后才能使用。
- API都提供了javadoc手册。javadoc手册是利用文档注释写在源码中的
- 可以利用JDK的javadoc工具抽取为HTML版本的手册。
- java中“最重要”的基础API类。
- 字符串的长度是字符的个数。
- String类不能被继承,否则会报编译错误。
- 字符串操作,本身是数组的扩容与复制。
- 静态字符串:字面量/常量/常量的连接结果
- “==”比较的是:变量的值(对象的地址)
- 静态字符串:编译器能够确定内容的字符串,如字符串常量。
- 字符串字面量:字面量常量的运算结果。如:public static final int ROWS=20; //ROWS称为常量;20称为字面量;
- 相同静态字符串,在运行期间引用同一个对象。
- 如果返回值与原字符串不同,就返回新字符串对象。
- 如果返回值与原字符串相同,经常返回原字符串对象。
- String是final类型。
- String对象是不可改变的(改变后指向新的String对象)。
- String API如果改变了内容,就返回新对象。
- String API方法是对char数组的操作运算。
- 没有API或者不用API,可以利用for循环处理字符数组,实现相应的功能,如果优化的好的话,性能有可以好与String API。
- indexOf(String str)
- int indexOf(String str, int fromIndex)
- int lastIndexOf(String str, int from)
- String substring(int beginIndex, int endIndex)
- .trim()
- char charAt(int index)
- startsWith和endsWith
- toUpperCase和toLowerCase
- String.valueOf(...)
- StringBuilder内部的字符数组内容和长度可变。
- StringBuilder可改变字符串。
- StringBuilder的字符操作性能好于String。
- String的连接计算是使用StringBuilder实现的。
- 输入输出简单操作时用String,复杂的更改使用StringBuilder,极致性要求时使用字符数组计算。
- append(String str)
- insert(int dstOffset, String s)
- delete(int start, int end)
- replace(int start, int end, String str)
- reverse()
- StringBuilder是可变字符串,字符串的内容计算建议采用StringBuilder实现,这样性能会更好些。
- java的字符串连接过程就是利用StringBuilder实现的。
- StringBuffer和StringBuilder
- 正则表达式:字符串的规则定义,字符串中字符出现的次序规律
- 业务规则:检查一段话中是否出现了“国骂”
- 是字符的“规则”定义,用在:1)文本内容的检索,在文件中查询需要的内容;2)文本内容的检查:检查文字中是否符合规范;3)文本的处理,拆分,替换等。
- java,PHP,javaScript等很多语言都支持正则
- 开发工具,操作系统,也支持正则表达式,不同系统的正则规范不同,可查看API手册 java.util.regex.Pattern
- boolean str.matches(regex); String[] split(String regex); String replaceAll(String regex, String replacement);
- 任何类型的父类型,一切皆对象
- Object类型的变量,可以引用任何对象,超级多态。
- Object定义了很多重要的方法,被子类继承,Java系统方法:toString, equals, hashCode
- toString方法:用于返回当前这个对象的文字描述,任何东西都可以用文字说明(描述)
- java认为任何对象都可以用文字描述,所以在Object类上定义了toString()方法,任何类型都可以继承这个方法。
- 建议子类重写这个方法,提供具体的文字描述
- 一般都在子类中重写这个方法
- java很多API都会回调这个方法的结果。println(obj)就会调用toString()。记住:以后只要写类,就写toString(),便于调试输出数据。
- 如何重写toString()?一般返回属性值。
- 默认返回结果是:classValue@hashCode
- equals用于比较对象的相等
- 建议子类重写
- 采用“模版”重写
- 要了解默认的equal方法(等同于==)
- java的很多方法会回调这个方法比较对象,如:Arrays.equals(arg1, arg2)
- String重写了equals方法
- ==用于比较变量的值,可以应用于任何类型,如果用于引用类型,比较的是两个引用变量中存储的值(地址信息),判断两个变量是否指向的是同一个对象。
- equals是Object的方法,重写以后,可以用于比较两个变量的内容是否“相等”。
- 需要注意的是,Object默认的equals方法的比较规则同==。
- 提供了字符串的数据向基本类型转换的算法,这些算法是人类输入与计算机处理的二进制之间的重要转换桥梁,如果输入数据(字符串)格式有误,转换不能成功,会抛出异常 NumberFormatException
- 还提供了将基本类型转换为String的方法,这个方法是用于输出基本类型的数据。
- 包装类都是final的,不能定义它们的子类。
- 包装类是不可变类,在构造了包装类对象后,不允许更改包装在其中的值。
- 因为基本类型不是对象,包装类可以把基本类型包装为对象。
- 将基本类型包装成对象有两种方式:1)用构造器创建 Object o = new Integer(1); 2)用方法创建 Object o = Integer.valueOf(1);
- 也可以将包装类拆包成基本类型:integer i = Integer.valueOf(5); int u = i.intValue();
- 包装类提供了与字符串类型的相互转换方法:String -> int Integer.parseInt(s);
- java 5提供了自动拆包和包装
- 抽象类Number是Byte,Double,Float,Integer,Long和Short类的父类。
- java 5开始,自动将123.45包装成Double类型。
- java的时间是long类型的毫秒数。
- 人类的时间系统:年月日时分秒
- java提供API解决java时间和人类的时间之间的计算。
- Date:简单时间封装和“过期”的时间计算方法。
- Calendar:复杂历法算法,可以获取设置时间分量,以及进行复杂的时间分量计算。
- SimpleDateFormat:提供了时间的输入与输出
- 时间API的使用:Date是时间类型的简单封装;Calender用于复杂的时间计算,简单时间计算直接使用long毫秒数计算。
- API能将计算机的时间转换为“年月日时分秒”的格式,也能将“年月日时分秒”转换为计算机的时间。
- Date类的内部,是个long类型的时间,是当前时间的毫秒数,还提供了历法算法,可以计算年份/月份/日期等。
- Date类重写了toString()方法和equals()方法。
- SimpleDateFormat简介:是一个以语言环境有关的方式来格式化和解析日期的具体类,允许进行格式化(日期->文本),解析(文本->日期)和规范化。Date ->String sbf.format(date); String -> Date sbf.parse(string)
- 日期模式匹配字符
| 字符 | 含义 | |
| y | 年 | yyyy-2013年 yy-13年 |
| M | 月 | MM月-01月 M月-1月 |
| d | 日 | dd日-06日 d日-6日 |
| E | 星期 | E-星期日(Sun) |
| a | AM或PM标识 | |
| H | 小时(24小时制) | |
| h | 小时(12小时制) | |
| m | 分钟 | |
| s | 秒 |
- 用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。
- Calendar是抽象类,其具体子类针对不同国家的日历系统,其中应用最广的是GregorianCalendar(格里高里历,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统。
- Calendar提供了一个类方法getInstance,以获得此类型的一个通用对象。Calendar c = Calendar.getInstance();
T-3-java核心API-基础类的更多相关文章
- 2018.6.19 Java核心API与高级编程实践复习总结
Java 核心编程API与高级编程实践 第一章 异常 1.1 异常概述 在程序运行中,经常会出现一些意外情况,这些意外会导致程序出错或者崩溃而影响程序的正常执行,在java语言中,将这些程序意外称为异 ...
- Java核心API需要掌握的程度
分类: java技术2009-08-29 01:03 213人阅读 评论(0) 收藏 举报 javaapiswingxmlio Java的核心API是非常庞大的,这给开发者来说带来了很大的方便,经常人 ...
- java核心API学习
1:java.lang (Object.String.StringBuffer.Thread.System.ClassLoader.Class.Runtime.包装类等)
- java核心API
---恢复内容开始--- Javase01 day01 关于String: String是不可变对象,java.lang.String使用了final修饰,不能被继承: 字符串一旦创建永远无法改变,但 ...
- 【Java核心】ClassLoader原理及其使用
又把博客的皮肤换了换,看着更加简洁舒心一些.前段的知识只是略懂,拿过来就能用,只是自己的审美和设计水平有限,实在难以弄出自己特别满意的东西,也算是小小的遗憾吧!言归正传,由于最近涉及到Java核心的东 ...
- java多线程核心api以及相关概念(一)
这篇博客总结了对线程核心api以及相关概念的学习,黑体字可以理解为重点,其他的都是我对它的理解 个人认为这些是学习java多线程的基础,不理解熟悉这些,后面的也不可能学好滴 目录 1.什么是线程以及优 ...
- Java核心-03 谈谈final、finally、 finalize有什么不同?
今天,我要问你的是一个经典的 Java 基础题目,谈谈 final.finally. finalize 有什么不同? 典型回答 final 可以用来修饰类.方法.变量,分别有不同地意义,final修饰 ...
- Java Attach API
catalog . instrucment与Attach API . BTrace: VM Attach的两种方式 . Sun JVM Attach API 1. instrucment与Attach ...
- Java核心_内省
Java核心_内省 查看java的api,发现有一个包java.bean咦,这个包是干什么的呢,原来,它是用来操作JavaBean对象的! 一.内省操作①JavaBean:一种特殊的Java类无参构造 ...
- Java核心 --- 注解
Java核心——注解 注解是jdk5以后的新特性,Spring和Hibernate等框架提供了注解的配置方式使用, 本文参考了浪曦风中叶的注解讲解,主要讲解jdk内置注解的用法,注解的声明和定义,以及 ...
随机推荐
- Docker镜像操作命令
一.使用Docker镜像 1. 获取镜像 可以使用docker pull命令直接从Docker Hub镜像源来下载镜像.该命令的格式为docker pull NAME[:TAG].其中,NAME是镜像 ...
- CentOS6下4网口绑定双IP
1. 基础信息介绍 4个物理网口分别是:eth0,eth1(集成网卡),eth2,eth3(外置网卡) 其中, 内置网卡eth0和eth1绑定到bond0(192.168.224.2 ...
- nginx优化php-fpm优化 压力测试达到每分150万访问量webbench网站压力
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统:Linux 2.编译安装:引用wget http: ...
- Redis的Errorlog或者启动日志(错误日志)的配置
Errorlog或者是运行日志是任何一个软件的运行中异常诊断必看的文件之一,折腾Redis的过程中以为有默认的错误日志(或启动日志),不过一直没有发现类似的日志文件,在看了默认的配置文件之后,发现Re ...
- 大型分布式架构设计与实现-第一章SOA(面向服务的体系架构)
拜读了大型分布式架构设计与实现,觉得该书作为入门不错,但内容过于简单,描述过于琐碎,小节之间连续性不强,不适合深入钻研学习.但为了更多的希望向架构师行业靠拢的工程师学习需要,本博客将对上书进行简化讲解 ...
- angular.min.js:118 Error: [ng:areq] http://errors.angularjs.org/1.5.8/ng/areq?
1,错误如图所示 简单说下错误原因是:没有js没有注册进去. 解决方法: 1.看下index.html有没有引入你的js文件. 2.看下app.js有没有注册js,比如我这次就是这步没做好,合并代码时 ...
- vue mock
如果后端不肯来帮你 mock 数据的话,前端自己来 mock 也是很简单的.你可以使用mock server 或者使用 mockjs + rap 也是很方便的. 不久前出的 easy-mock也相当的 ...
- MySQL添加用户并授权
一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用户名 host:指定该用户 ...
- scrapy 之自定义命令运行所有爬虫文件
1.在spider文件夹同级目录创建commands python包 2.在包下创建command.py文件 3.从scrapy.commands包下引入ScrapyCommand 4.创建一个类,继 ...
- java编译带中文是显示乱码的错误
FirstJava.java:3: 错误: 编码GBK的不可映射字符 System.out.println("娆㈣繋瀛︿範Java绋嬪簭锛?")锛? ^FirstJava.java ...