【笔记】常用 API的基本知识以及常用方法

public class API{

public static void main(String[] args) {


/*-----------字符串的基本知识------------


/*生成对象的两种方式

String strA = "hello";

String strB = new String("hello");//新定义一块内存

String strC = "hello";//将指针直接指向 strA 已拥有的对象,不用再新定义


/*字符串的两种比较方式

System.out.println(strA == strB);//比较地址

System.out.println(strA.equals(strB));//比较内容(有方法可以忽略大小写->验证码)

System.out.println(strA.compareTo("Hello"));//返回两个字符串中第一个不同字符的 ASCII 编码差(同样可以忽略大小写)使用+可以对字符串进行连接操作

在字符串里面有特殊字符,需要转义字符‘\’

字符串的不可变性。当我们执行修改它的时候,会生成新字符串


/*------------String 常用方法1-------------


/*字符串内容判断:

strA.startWith("he")//判断字符是否以 he 开头/同理还有 endWith


/*字符串查找:

strA.contains("ell")//返回布尔值

strA.indexOf("ell")//返回 ell 在 strA 中的位置

strA.indexOf("ell",3)//跳过前3个字符

strA.lastIndexOf("l")//最后出现l的位置


/*字符串截取:

str.substring(4)//截取从第 4 到末尾的字符

str.substring(4,7) //截取从第 4 到第 7 个字符,即包头不含尾


/*字符串替换:

str.replaceFirst("o","-") //替换第一个 o 为-;

str.replaceAll("o","-") //和 replace 效果一样,但是它符合正则


/*字符串拆分:

str.split("") // 按照标准拆分为数组

str.split("",2) // 指定从头拆分为长度为2的数组


/*获取指定下标的字符

str.charAt(4) // 获取下标为 4 的字符


/*获取字符串的长度

str.length() // 汉字算一个字符,和数组长度的区别,数组是属性,字符串是方法


/*判断字符串是否为空

str.isEmpty() // 返回布尔值(也可用长度和 equals 来判断)


/*把字符串转大小写

str.toUpperCase() // 转为大写

str.toLowerCase() // 转为小写


/*去掉字符串中空格

str.trim() 可以去掉两端的空格


/*字符串连接

+ 最常用

str.concat("!"); //参数为后面要加的字符


/*字符串与其他类型相转换

str.toCharArray() //转换为 char 数组(可检查密码中是否有大小写)

String.valueOf(a) //把对象 a 转化为新字符串


/*-----------------包装类的使用------------------------*/


Byte //字节

Short //短整型

Integer //整型

Long //长整型

Double //双浮点型

Float //浮点型

Character //字符型

Boolean //布尔型

包装类可以表示空,基础类型不能表示空


//装箱操作:将基础数据放置到包装类的过程 

int x = 1; 

Integer i1 = new Integer(x); //构造方法

Integer i2 = Integer.valueOf(2) //静态方法 


//拆箱操作

int r1 = i1.intValue;

double r2 = i1.doubleValue;

*注* 

jdk1.5 后可以执行自动装箱和拆箱(也就是不同类型可以混用)


/*包装类的静态属性

Integer.MAX_VALUE //最大值

Integer.MIN_VALUE //最小值

Integer.BYTES //位

Integer.SIXE //int 占用的位

Integer.toBinaryString(int1) //将 int1 转换为二进制数据,以字符串打印

Integer.toHexString(int) //八进制

Boolean.parseBoolean(str) //将 str 转化为 boolean 值(如果 str==“true”,那么就为真)


/*比较

1.看是不是==或 !=来比较的,如果不是,只看内容就行

2.如果是,先看运算符两边是不是对象,如果不都是,比较的也只是内容

3.如果不是,那么看两个引用有没有指向同一个对象


/*--------math 类-----------


/*math 类有 final 所以他不能有子类

Math.PI // π


/*数字舍入

Math.pow(2,3) //次方计算,2的3次方

Math.round(15.5) //四舍五入,得到16,进行整数

Math.round(-15.5) //得到-15对负数进行退位

Math.round(-15.5) //得到-16,以0.5为界


*保留任意位数小数方法*

prublic double accrateRound(double a , int scale){

double temp1 = a * Math.pow(10,scale);

double temp2 = Math.round(temp1);

double result = temp2/Math.pow(10.0,scale);

return result;

}


/*大数字处理

Long.MAX_VALUE // long 的最大表示范围:9223372036854775807

String num1 = "3564566511";

String num2 = "546464646";

BigInteger big1 = new BigInteger(num1);

BigInteger big2 = new BigInteger(num2);

big1.add(big2) //加

big1.subtract(big2) //减

big1.multiply(big2) //乘

big1.divide(big2) //除

BigInteger[] result = big1.divideAndRemainder(big2); //除,并且取余,放在一个数组里

//如果是浮点数(BigDecimal)除法需要重载方法,设定保留小数位数(BigDecimal.ROUND_HALF_UP代表四舍五入)

针对整型小数无法正常表示,可以用大数字来做


*在这做一个浮点乘法方法*

public double accrateMutiply(double a,double b){

String str1 = String.valueOf(a);

String str2 = String.valueOf(b);

BigDecimal big1 = new BigDecemal(str1);

BigDecimal big2 = new BigDecemal(str2);

double result = big1.multiplt(big2).doubleValue();

return result;

}


/*-------Random 类的使用--------


/*创建随机数

Random rd = new Random();

double d = rd.nextDoule(); //范围在0-1之间,可以等于0.

int d1 = rd.nextInt(); //范围是 int 的取值范围

如果有种子(就是构造方法里面的参数),那么产生的数字将固定

可以产生一个随机数数组

1. int[] array = new int[5];

rd.nextInts(array);//可以产生范围为 int 的随机序列

(jdk1.8)2. IntStream is = rd.ints(10,0,100); //产生了一个随机序列,10个,最小值0,小于100。

int[] array = is.toArray(); //转换为数组


/*--------日期时间的学习--------


/*date创建(不提倡使用)

date d1 = new Date(108,7,8,20,0,0)d1.setYear(); // 也可以用

Date d = new Date(); //获得现在的时间

d.getYear() //上面有横线,标示不建议使用。因为他是从1900年当做初始年的

d.getMonth() //有横线,因为月份是从0开始算的

d.getDate() //得到日

d.getHours() //得到时

d.getMinutes() //得到分

d.getSeconds() //得到秒


/*Calendar 创建

Calendar c = Calendar.getInstance();

c.set(2008,7,8,20,8,0);

c.get(Calendar.YEAE); //获得当前的年份

c.get(Calendar.MONTH); //获得当前的月(从0开始)

其余一样

Date d1 = c.getTime(); //将 Calendar 对象赋值给 date;

d1.toString()


/*转换

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

syso(sdf.format(d1));


/*时间戳

d2.getTime() // d2时间到1900.1.1的毫秒数


/*-------集合-----------


/*基本常识

集合中只能存放对象(引用),不能存放基础类型

存到集合中的东西叫做元素

不管集合里面是什么都可以看做是 Object 对象

在使用前都需要将其还原为以前的类型


/*分类

分为三类:列表、映射、集

列表:List

线性、元素致密有序

映射:Map

键值对、键不重复、有自身的排序机制

集:Set

无序、元素不重复


/*实现类

三种集合的接口

List: ArrayList Vector LinkesList Stack

Map: HashTable HashMap WeakHashMap TreeMap

Set: HashSet  TreeSet


/*---------List集合----------


/*创建

List al = new ArratList();

Dog dog1 = new Dog();

Dog dog2 = new Dog();


/*存放(增)

al.add(dog1);

al.add(dog2);

al.add(2,dog1);//将一个 dog1 插入到02号位置。但不能超出集合长度


/*获取(查)

(al.get(0)得到的是一个 object 对象,需要强制转换)

Dog d1 = (Dog)al.get(0);


/*取代(改)

al.set(2,new Dog(30)); //用 Dog30 取代02处的对象。/*移除(删)

al.remove(2); //移除02号元素。

al.remove(dog1); //移除dog1元素。


/*其他

(和 Vector 可以互换,区别在于线程安全。ArrayList 线程不安全。Vector 线程安全)

al.clear(); //清空集合

al.isEmpty() //判断集合是否为空,返回布尔值

*/




}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值