一、API 现成的类(程序)
  1. Java API是java(Oracle)提供的系统标准API。
  2. 第三方的jar包API,如:JUnit.jar。
  3. 可以自己开发一些API。
  4. 一般情况下任何技术都有现成的API。
 
二、文档注释
  1. java源代码中,/**...*/可以用于生成手册。
  2. 在文档中,可以使用@定义手册的段落,格式:@author @see
  3. 利用java开发工具命令javadoc可以生成JavaHTML版本的手册。(也可以用eclipse的图形界面的export命令调用javadoc生成手册)
  4. javadoc命令是利用JDK的命令,需要配置好JDK以后才能使用。
  5. API都提供了javadoc手册。javadoc手册是利用文档注释写在源码中的
  6. 可以利用JDK的javadoc工具抽取为HTML版本的手册。
 
三、String 及其重要的API类
  1. java中“最重要”的基础API类。
  2. 字符串的长度是字符的个数。
  3. String类不能被继承,否则会报编译错误。
  4. 字符串操作,本身是数组的扩容与复制。
 
四、String常量池 性能优化现象
  1. 静态字符串:字面量/常量/常量的连接结果
  2. “==”比较的是:变量的值(对象的地址)
 
五、String类的静态缓冲池优化现象
  1. 静态字符串:编译器能够确定内容的字符串,如字符串常量。
  2. 字符串字面量:字面量常量的运算结果。如:public static final int ROWS=20; //ROWS称为常量;20称为字面量;
  3. 相同静态字符串,在运行期间引用同一个对象。
 
六、关于String API
  1. 如果返回值与原字符串不同,就返回新字符串对象。
  2. 如果返回值与原字符串相同,经常返回原字符串对象。
 
七、关于String
  1. String是final类型。
  2. String对象是不可改变的(改变后指向新的String对象)。
  3. String API如果改变了内容,就返回新对象。
  4. String API方法是对char数组的操作运算。
  5. 没有API或者不用API,可以利用for循环处理字符数组,实现相应的功能,如果优化的好的话,性能有可以好与String API。
 
八、String常用API
  1. indexOf(String str)
  2. int indexOf(String str, int fromIndex)
  3. int lastIndexOf(String str, int from)
  4. String substring(int beginIndex, int endIndex)
  5. .trim()
  6. char charAt(int index)
  7. startsWith和endsWith
  8. toUpperCase和toLowerCase
  9. String.valueOf(...)
 
九、StringBuilder及其API
  1. StringBuilder内部的字符数组内容和长度可变。
  2. StringBuilder可改变字符串。
  3. StringBuilder的字符操作性能好于String。
  4. String的连接计算是使用StringBuilder实现的。
  5. 输入输出简单操作时用String,复杂的更改使用StringBuilder,极致性要求时使用字符数组计算。
  6. append(String str)
  7. insert(int dstOffset, String s)
  8. delete(int start, int end)
  9. replace(int start, int end, String str)
  10. reverse()
总结:
  • StringBuilder是可变字符串,字符串的内容计算建议采用StringBuilder实现,这样性能会更好些。
  • java的字符串连接过程就是利用StringBuilder实现的。
  • StringBuffer和StringBuilder
StringBuffer是线程安全的,同步处理的,性能稍慢。
StringBuilder是线程不安全的,并发处理的,性能稍快。
 
十、正则表达式   Regular Expression (regex)
  1. 正则表达式:字符串的规则定义,字符串中字符出现的次序规律
  2. 业务规则:检查一段话中是否出现了“国骂”
  3. 是字符的“规则”定义,用在:1)文本内容的检索,在文件中查询需要的内容;2)文本内容的检查:检查文字中是否符合规范;3)文本的处理,拆分,替换等。
  4. java,PHP,javaScript等很多语言都支持正则
  5. 开发工具,操作系统,也支持正则表达式,不同系统的正则规范不同,可查看API手册 java.util.regex.Pattern
  6. boolean str.matches(regex); String[] split(String regex); String replaceAll(String regex, String replacement);
 
十一、Object
  1. 任何类型的父类型,一切皆对象
  2. Object类型的变量,可以引用任何对象,超级多态。
  3. Object定义了很多重要的方法,被子类继承,Java系统方法:toString, equals, hashCode
 
十二、toString方法
  1. toString方法:用于返回当前这个对象的文字描述,任何东西都可以用文字说明(描述)
  2. java认为任何对象都可以用文字描述,所以在Object类上定义了toString()方法,任何类型都可以继承这个方法。
  3. 建议子类重写这个方法,提供具体的文字描述
  4. 一般都在子类中重写这个方法
  5. java很多API都会回调这个方法的结果。println(obj)就会调用toString()。记住:以后只要写类,就写toString(),便于调试输出数据。
  6. 如何重写toString()?一般返回属性值。
  7. 默认返回结果是:classValue@hashCode
 
十三、equals方法
  1. equals用于比较对象的相等
  2. 建议子类重写
  3. 采用“模版”重写
  4. 要了解默认的equal方法(等同于==)
  5. java的很多方法会回调这个方法比较对象,如:Arrays.equals(arg1, arg2)
  6. String重写了equals方法
重写“模版”
public boolean equals(Object obj){
   if(obj==null){
      return false;
   }
   if(this==obj){
      return true;
   }
   if(obj instanceof cell){
      Cell cell = (Cell) obj;
      return cell.row == row && cell.col == cell; //每个属性相同则认为是equals的
   }else{
      return false;
   }
}
 
十四、equals和==的区别
  1. ==用于比较变量的值,可以应用于任何类型,如果用于引用类型,比较的是两个引用变量中存储的值(地址信息),判断两个变量是否指向的是同一个对象。
  2. equals是Object的方法,重写以后,可以用于比较两个变量的内容是否“相等”。
  3. 需要注意的是,Object默认的equals方法的比较规则同==。
 
十五、包装类
  1. 提供了字符串的数据向基本类型转换的算法,这些算法是人类输入与计算机处理的二进制之间的重要转换桥梁,如果输入数据(字符串)格式有误,转换不能成功,会抛出异常 NumberFormatException
  2. 还提供了将基本类型转换为String的方法,这个方法是用于输出基本类型的数据。
  3. 包装类都是final的,不能定义它们的子类。
  4. 包装类是不可变类,在构造了包装类对象后,不允许更改包装在其中的值。
 
十六、八种基本类型包装类
  1. 因为基本类型不是对象,包装类可以把基本类型包装为对象。
  2. 将基本类型包装成对象有两种方式:1)用构造器创建 Object o = new Integer(1); 2)用方法创建 Object o = Integer.valueOf(1);
  3. 也可以将包装类拆包成基本类型:integer i = Integer.valueOf(5);  int u = i.intValue();
  4. 包装类提供了与字符串类型的相互转换方法:String -> int    Integer.parseInt(s);
  5. java 5提供了自动拆包和包装
           Integer i = 5; //自动包装
           int n = i+3;   //自动拆包
           java是利用编译器进行语法替换的,经编译后:
           Integer i = Integer.valueOf(5);
           int n = i.intValue() + 3;
 
十七、Number
  1. 抽象类Number是Byte,Double,Float,Integer,Long和Short类的父类。
  2. java 5开始,自动将123.45包装成Double类型。
 
十八、关于java的时间
  1. java的时间是long类型的毫秒数。
  2. 人类的时间系统:年月日时分秒
  3. java提供API解决java时间和人类的时间之间的计算。
  4. Date:简单时间封装和“过期”的时间计算方法。
  5. Calendar:复杂历法算法,可以获取设置时间分量,以及进行复杂的时间分量计算。
  6. SimpleDateFormat:提供了时间的输入与输出
  7. 时间API的使用:Date是时间类型的简单封装;Calender用于复杂的时间计算,简单时间计算直接使用long毫秒数计算。
 
十几、Date及其常用API
  1. API能将计算机的时间转换为“年月日时分秒”的格式,也能将“年月日时分秒”转换为计算机的时间。
  2. Date类的内部,是个long类型的时间,是当前时间的毫秒数,还提供了历法算法,可以计算年份/月份/日期等。
  3. Date类重写了toString()方法和equals()方法。
  4. SimpleDateFormat简介:是一个以语言环境有关的方式来格式化和解析日期的具体类,允许进行格式化(日期->文本),解析(文本->日期)和规范化。Date ->String sbf.format(date);  String -> Date sbf.parse(string)
  5. 日期模式匹配字符
字符 含义  
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
  1. 用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。
  2. Calendar是抽象类,其具体子类针对不同国家的日历系统,其中应用最广的是GregorianCalendar(格里高里历,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统。
  3. Calendar提供了一个类方法getInstance,以获得此类型的一个通用对象。Calendar c = Calendar.getInstance();
 
 
 
 
 
 
 
 
 
 
 
 
 
 

T-3-java核心API-基础类的更多相关文章

  1. 2018.6.19 Java核心API与高级编程实践复习总结

    Java 核心编程API与高级编程实践 第一章 异常 1.1 异常概述 在程序运行中,经常会出现一些意外情况,这些意外会导致程序出错或者崩溃而影响程序的正常执行,在java语言中,将这些程序意外称为异 ...

  2. Java核心API需要掌握的程度

    分类: java技术2009-08-29 01:03 213人阅读 评论(0) 收藏 举报 javaapiswingxmlio Java的核心API是非常庞大的,这给开发者来说带来了很大的方便,经常人 ...

  3. java核心API学习

    1:java.lang  (Object.String.StringBuffer.Thread.System.ClassLoader.Class.Runtime.包装类等)

  4. java核心API

    ---恢复内容开始--- Javase01 day01 关于String: String是不可变对象,java.lang.String使用了final修饰,不能被继承: 字符串一旦创建永远无法改变,但 ...

  5. 【Java核心】ClassLoader原理及其使用

    又把博客的皮肤换了换,看着更加简洁舒心一些.前段的知识只是略懂,拿过来就能用,只是自己的审美和设计水平有限,实在难以弄出自己特别满意的东西,也算是小小的遗憾吧!言归正传,由于最近涉及到Java核心的东 ...

  6. java多线程核心api以及相关概念(一)

    这篇博客总结了对线程核心api以及相关概念的学习,黑体字可以理解为重点,其他的都是我对它的理解 个人认为这些是学习java多线程的基础,不理解熟悉这些,后面的也不可能学好滴 目录 1.什么是线程以及优 ...

  7. Java核心-03 谈谈final、finally、 finalize有什么不同?

    今天,我要问你的是一个经典的 Java 基础题目,谈谈 final.finally. finalize 有什么不同? 典型回答 final 可以用来修饰类.方法.变量,分别有不同地意义,final修饰 ...

  8. Java Attach API

    catalog . instrucment与Attach API . BTrace: VM Attach的两种方式 . Sun JVM Attach API 1. instrucment与Attach ...

  9. Java核心_内省

    Java核心_内省 查看java的api,发现有一个包java.bean咦,这个包是干什么的呢,原来,它是用来操作JavaBean对象的! 一.内省操作①JavaBean:一种特殊的Java类无参构造 ...

  10. Java核心 --- 注解

    Java核心——注解 注解是jdk5以后的新特性,Spring和Hibernate等框架提供了注解的配置方式使用, 本文参考了浪曦风中叶的注解讲解,主要讲解jdk内置注解的用法,注解的声明和定义,以及 ...

随机推荐

  1. spring加载配置新旧方式对比

    老方式 1.首先要配置配置文件,如beans.xml,内容如下: <?xml version="1.0" encoding="UTF-8"?> &l ...

  2. 2.表单与PHP

    不管是一般的企业网站还是复杂的网络应用,都离不开数据的添加.通过PHP服务器端脚本语言,程序可以处理那些通过浏览器对Web应用进行数据调用或添加的请求. 回忆一下平常使用的网站数据输入功能,不管是We ...

  3. HQL中左连接,右连接、内连接

    左连接:left join 如A left join B 即取出A表的所有数据,由on条件关联的B表数据,有则显示,没有则为空: 右连接:right join 如 A right join B 即取出 ...

  4. configure,make,make install作用和关系的一些理解

    一. 整体关系 为求直观,画了一张大致关系图: 我个人的理解是这样的,将编译安装比作做菜的话, △ configure的作用,以厨师的构想以参数的形式作为输入,生成并输出菜谱,菜谱包含两个部分---- ...

  5. Spring核心之IOC

    IOC是Spring的两大核心之一:IOC的核心就是解耦. 举个例子:有2个班级可以上课,校长指定老师去上课,代码如下 package com.hongcong.test; public class ...

  6. ABAP 程序/接口调用其他程序的数据

    在ABAP遇到的业务场景中,可能会遇到一种情况,需要调用其他报表的数据来发送或者二次加工,这个时候又不想对源程序做大的改动.有以下几种思路解决. 1.修改源程序,将需要展示的数据存储到DB中,然后主程 ...

  7. Game Engine Architecture 8

    [Game Engine Architecture 8] 1.Differences across Operating Systems • UNIX uses a forward slash (/) ...

  8. 关于Linux 文件权限的思考

    Linux文件系统每个文件分为inode和block,inode中包含一些基本信息(文件名,类型,长度,修改时间,权限等待),并且指向包含文件真实内容的block,而目录是文件的一种,其block的内 ...

  9. windows server 2012R2 故障转移集群配置

    配置说明: AD:10.10.1.10/24  Node-2:10.10.1.20/24 Node-3:10.10.1.30/24 zhangsan-PC:10.10.1.50/24  VIP1:10 ...

  10. 【转载】路径双反斜杠!!!Python IDLE或Python shell中切换路径 切换目录os.chdir("C:\\python37\\2019pythonshel37\\diedai")

    Python IDLE或shell中切换路径在Python自带的编辑器IDLE中或者python shell中不能使用cd命令,那么跳到目标路径呢.方法是使用os包下的相关函数实现路径切换功能. im ...