一、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. MM-科目自动分配

    SAP系统篇 MM自动记账解析之基本概念(01) https://blog.csdn.net/qq_33641781/article/details/78027802 MM自动记账解析之功能实现(02 ...

  2. linux查看指定时间段的日志

    不需要tail命令,直接 grep '2018-04-22 12:3[2-9]' tesl.log: 这就是查询指定文件的2018-04-22 12点32分到39分的日志

  3. jsTree通过AJAX从后台获取数据

    页面代码: <div id="MenuTree"></div> javascript代码: $(document).ready(function ($) { ...

  4. mysql学习二、SQL常用数据类型

    一.常用数据类型 二.选择数据类型的原则: 1 业务需要 2 满足第一个条件下,需要存储空间最小的. 三.常用的选择数据类型思路:

  5. jmeter启动报错

    # ./jmeter-server Using local port: 1099Server failed to start: java.rmi.server.ExportException: Lis ...

  6. Java简单操作dubbo(一)

    dubbo-service公共Service package com.itman.service; public interface UserService { // 提供服务 使用userId查找用 ...

  7. BackgroundWorker 组件 -- 进度条

    代码: BackgroundWorker bw = new BackgroundWorker(); public MainWindow() { InitializeComponent(); bw.Wo ...

  8. C#使用Owin技术部署轻量级webApi服务

    写在前面: 除了使用IIS可以启用WebApi之外,微软还提供了Owin技术,免除了IIS繁琐的部署配置,只需要运行编写好的程序,即可启用webApi服务,是不是很爽呢? 对于Owin技术的详细介绍这 ...

  9. Tensorflow学习笔记2019.01.22

    tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...

  10. Python·——进程1

    1.进程背景知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序(的一个抽象). 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统 ...