基础

Java语法 面向对象
多态

属性不能重写 访问属性 只取决于引用变量的类型
方法可以重写 只取决于引用变量所引用对象的类型

重写的条件:
1.父子类中 子类重写父类中同名的方法
1.方法名相同 参数列表相同
2.子类访问控制属性不能比父类中方法的访问控制属性窄
3.对于返回值类型
基本数据类型要相同
引用数据类型 子类重写的方法可以返回父类方法返回值类型的子类类型

重载 和 重写

抽象类 抽象方法


JDK API:java的应用程序开发接口 类库 类 库 包
JDK: Java Development Kit java开发工具
API: Application Programe Interface 应用程序开发接口

java提供了很多并且完善的类和库供程序开发使用  
对于程序员来讲  了解这些类库的使用  知道实现原理
线程  网络  线程池   集合
有哪些类  怎么实例化对象   有哪些方法  常量   
方法的参数是怎么样   方法的返回值类型

java.util    工具包  
java.io      输入输出
java.sql     数据库
java.net     网络

JDK API文档不是自己撰写  而是自动生成的

java.lang.Object
声明定义一个类如果没有显示地extends某个类,则默认是继承Object类
Object是所有类的终极父类

Object obj =  任何类型的对象;

Object里面提供的方法:

  1. String toString()
    返回该对象的字符串表示。

  2. Class<?> getClass() 获得类的信息 子类不能重写
    返回此 Object 的运行时类。

子类不重写Object类里的方法有:
getClass finalize() notify() notifyAll() wait()

//用于线程同步 都是final修饰的方法 不能被重写
void notify()
唤醒在此对象监视器上等待的单个线程。
void notifyAll()
唤醒在此对象监视器上等待的所有线程。
void wait()
在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。
void wait(long timeout)
在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。
void wait(long timeout, int nanos)
在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。

3.boolean equals(Object obj)
指示其他某个对象是否与此对象“相等”。
在Object类这个方法的实现其实是:
boolean equals(Object obj){
return this == obj;
}
建议实现一个类的时候如果需要判断两个对象的属性是否相等要重写此方法

equals有几个原则:
1. 任何一个对象与null进行比较时都为false
2. 任何一个对象与自己进行比较时都为true
3. 如果比较的两个对象的类型不一致,结果都为false
因为属于不同类型的对象
int hashCode()
返回该对象的哈希码值。
如果有必须就重写,一般重写了equals方法就可以重写hashCode方法
hashCode方法有两个原则:
1. 当两个对象equals进行比较为true时,这两个对象的hashCode一定要相同
第1点一定要满足
2. 当两个对象equals进行比较为false时,这两个对象的hashCode尽量不要相同

class Circle{
Point center;
int r;
//equals hashCode方法
}

== 和 equals 的区别:
== :比较变量里的值是否相等
对于基础数据类型 比较的是值是否相等
对于引用数据类型 判断是否引用同一个对象

比较两个对象的属性值是否相等:
equals方法来比较

自动生成API文档
根据注解的内容生成API文档
/** 比多行注释只多了个*
*@author 作者
*@since 版本
@see 参考
/
写一个类
/

  • @param
  • @retrun
    */

注释 用于阅读和理解代码 方便代码维护
// 单行注释
/*
多行注释
注释可以写多行
*/

第一步:编写文档注解
关于类的注解 类的声明的前面
/**
*这是关于类的阐述:功能
*@author xx
*@since 版本
@see 参考
/
关于方法的注解 放在方法的前面
/

*@param 参数
*@return 返回值类型
*/

编码一定要是GBK

第二步:Project->Generate javadoc
javadoc command: 命令所在的位置
左边选择工程里哪个包 右边选择类
下面选择 存储路径
Finish
就会生成doc文档

单例模式:
要求写一个类,这个类只能实例一个对象
添加注解 生成API文档
技术点:
禁止在类外面 使用 new 构造方法(); 创建对象
1.把所有的构造方法全部私有化
2.提供特殊的途径 每次获得一个对象 而且保证是同一个对象
静态方法

单元测试工具:
1.导入类 import org.junit.Test;
2.在需要测试的方法前加 @Test

String:
字符串
双引号引起的内容
Java里字符串是不可变类型,不可以修改一个字符串里的字符
JVM为了节省内存和提高效率,对于字符串字面值相同的字符串只在字符串常量池中保持一份

String str = "Hello";//在字符串常量池在寻找有没有"Hello"这个字符串
如果没有就在字符串常量池在创建一个,然后用str引用这个对象
String ss = "Hello";

ss = "World";

Java中的字符串是Unicode编码,每个字符占两个字节内存
	不管中文还是英文 一个中文也是一个字符

成员方法:
int length() 获得字符串的长度 字符的个数
char charAt(int index) 获得下标位置的字符 下标[0,length()-1]
超出范围Errors:java.lang.StringIndexOutOfBoundsException
判断一个字符串是否是回文?

操作字符串都不是修改原字符串的内容,而是通过返回值返回新的字符串
String subString(int begin,int end) 通过下标截取  [begin,end)
String subString(int begin)         默认截取到结尾
	返回截取的子串
String toLowerCase()  返回小写的字符串
String toUpperCase()  返回大写的字符串

boolean startWith(String str)  是否以str开始
boolean endWith(String str)    是否以str为结尾

String trim()              去除字符串首尾的空白字符 空格 \t \n \f \r   
String[] splilt(String str)          拆分字符串 根据str拆分字符串  
int indexOf(char/String c)  返回字符/字符串在字符串中下标的位置
	如果不存在则返回-1
int LastIndexOf(char/String c)

String concat(String str)  拼接字符串到末尾

//把基础数据类型转换成字符串类型
static String valueOf(基本数据类型)

String replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replace(CharSequence target, CharSequence replacement)
使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
String replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex, String replacement)
使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。
String[] split(String regex, int limit)
boolean matches(String regex)
告知此字符串是否匹配给定的正则表达式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值