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内置注解的用法,注解的声明和定义,以及 ...
随机推荐
- Ubuntu下安装pytorch(GPU版)
我这里主要参考了:https://blog.csdn.net/yimingsilence/article/details/79631567 并根据自己在安装中遇到的情况做了一些改动. 先说明一下我的U ...
- 数据结构——串(KMP)
空串:长度为0的串 空格串:由一个或多个空格组成的串 串常用的3种机内表示方法: 定长顺序存储表示: 用一组地址连续的存储单元存储串的字符序列,每一个串变量都有一个固定长度的存储区,可用定长数组来描述 ...
- cxgrid主从表的从表数据小于主表总数的问题
当从表的数据移动需要和数据源记录同步时,会发生一现象:从表中设定的keyfield记录不连续,显示就会中断. 这样要设置从表的排序,按照主表的关联键在内存表里进行排序 indexFieldNames设 ...
- 天池医疗AI大赛支持有感
从去年大概11月份开始一直到现在,大部分的精力在天池医疗AI大赛的研发和支持上面,也算深度支持了20几只复赛参赛队伍的复赛进程.总的感觉其实与现在媒体宣传的"中国成为AI大国"ba ...
- 手眼标定eye-to-hand 示例:handeye_stationarycam_calibration
* * This example explains how to use the hand eye calibration for the case where* the camera is stat ...
- js----点击事件三种方法
在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 (1)注意函数名没有双引号. ...
- mybatisplus打印sql语句
package com.osplat.config; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; ...
- 【笔记】Python基础四:迭代器和生成器
一,迭代器协议和for循环工作机制 (一),迭代器协议 1,迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个stopiteration异常,以终止迭代(只能往 ...
- 【c】多级指针
一.一级指针 1.int *p,*p2; p是变量名,*表明是指针,指针指向地址. 在定义时初始化,如int *p_2 = &b; //定义一个指针,指针指向一个地址 先定义再初始化,如int ...
- TZOJ 2569 Wooden Fence(凸包求周长)
描述 Did you ever wonder what happens to your money when you deposit them to a bank account? All banks ...