1、基本数据类型的封装
a、装箱:
是将基本数据类型,通过=等号的形式,直接赋值给一个对应的基本数据类型
的封装类。比如:Integer a = 3;
b、拆箱:
是在使用基本数据类型的包装类直接进行算数运算的时候,将自动进行拆箱操 作,比如:Integer a = 3; int b = a + 1;此时,将会对a进行拆箱操作,取 出的是Integer这个包装类中封装的对应的int类型的值。
(PS:类似的,还有Long,Float等)
2、字符串
a、charAt(int arg);返回arg下标索引所对应的char字符
b、aa.compareTo(bb);
b.1、如果aa.equals(bb) == true,那么返回0.
b.2、如果不相等,那么两个字符串进行同位的依次比较,如果都相等,那么
输出,调用者字符串 减去 参数字符串的长度。
b.3、如果有不相等的,直接返回aa的Unicode表中的该char对应的码值
减去bb的Unicode表中的该char对应的码值。
(PS:如果aa大于bb,则返回正整数,反之返回负整数,均不符合,则返回0 ,即相等)
public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;
int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}
c、contains(CharSequence s):
c.1:比较左边字符串中是否包含右边字符串的内容,如果包含,则返回 true,反之返回false。
d、contentEquals与equals这个方法,当传入参数为字符串的时候,则均用equals来
比较字符串是否是相同的内容。
c、-1 >>> 1:相当于取得字面量int类型的最大值。如果再+1,int范围溢出,舍掉 溢出的最高位,变为int类型最小值。
e、copyValueOf(char [] arg):通过String的构造方法,将arg数组转为String对象。
f、endsWith()
g、equalsIgnoreCase(String arg):忽略大小写,比较两个字符串是否相等。
h、indexOf(int arg):输出当前字符串中第一次出现arg这个字符的索引位置。
i、replace:将原String字符串中的某个char替换为新的char
j、replaceAll:将某个符合正则表达式的字符串内容,替换为某个字符串。
k、replaceFirst:将第一个符合正则表达式的字符串内容,替换为第二参数内容。
(该正则表达式可以直接写成想替换的字符串实际内容。)
l、split:可以通过正则表达式来分割字符串。
m、trim():去掉String中的空格。
n、String.valueOf:将某个参数转换为String类型。
3、Math
a、π
b、E
c、abs:取绝对值
d、提供各种三角函数运算
e、cbrt:返回double值的立方根
f、ceil:无小数点部分,则等于原参数。有小数点部分,则直接进1。
g、copySign:取第二个参数的符号给第一个参数,并且返回。
h、log:求对数的一系列算法。
i、max:返回比较的两个值中较大的那一个
j、min: 返回比较的两个值中较小的那一个
k、nextAfter:返回两个值之间的一个数字,并且在double范围内,无限接近第一个参 数
l、pow:求第一个参数的第二个参数次幂
m、random:返回一个[0,1)的随机数。
n、rint:如果小数部分<=0.5,则为舍弃,返回整数。反之,进1.
o、round:四舍五入,返回long类型。
p、scalb(double arg1, int arg2):返回arg1 * 2^arg2;
q、返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0; 如果参数小于 0,则返回 -1.0。
r、弧度转角,角转弧度
4、Random
a、seed:种子数,相同的种子数,不同的对象,执行相同次数的next系列方法,返回 相同的值。
b、可以返回某个范围内的随机数,可以使double,float,long,int等类型。
c、nextGaussian:返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯( “正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0。
package main;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT;
public class CoreJavaDay13 {
public static void main(String[] args) {
int a = 3;
Integer b = 3;
//装箱(Boxing)操作,起源于:JAVA 1.5
Integer b2 = Integer.valueOf(3);
Long c = 100L;
Long c2 = Long.valueOf(100);
//拆箱(Unboxing)操作,起源于JAVA 1.5
System.out.println(a + 4);
System.out.println(b + 4);
System.out.println( b.intValue() + 4);
//这个不叫做严格意义的拆箱,但是中间过程中,涉及到拆箱。
System.out.println(b.toString() + 4);
String aa = "abcaeag";
String bb = "!!!";
//如果aa位于bb之前,则返回负整数。
//如果aa位于bb之后,则返回正整数
//如果aa与bb顺序相同,则返回0
// System.out.println(aa.charAt(0));
// System.out.println(aa.compareTo(bb));
// System.out.println(aa.contains(bb));
System.out.println(aa.contentEquals(bb));
System.out.println(aa.equals(bb));
char []cc = {'a', 'b', 'c'};
System.out.println(String.copyValueOf(cc, cc.length, 0));
System.out.println(aa.endsWith(bb));
System.out.println(aa.equalsIgnoreCase(bb));
// int ddd = aa.charAt(1);
// System.out.println(ddd);
// System.out.println((char)ddd);
System.out.println(aa.indexOf('d'));
System.out.println(aa = aa.replace('a', '!'));
System.out.println(aa.replaceAll("!b", "c"));
System.out.println(Math.PI);
System.out.println(Math.E);
System.out.println(Math.ceil(Math.PI));
System.out.println(Math.ceil(10.7));
System.out.println(Math.ceil(-10.1));
System.out.println(Math.ceil(-10.7));
System.out.println(Math.copySign(10, -12));
System.out.println(Math.max(10.1, 10.2));
System.out.println(Math.max(-10.1, -10.2));
System.out.println(Math.nextAfter(10.1, 10.2));
System.out.println(Math.pow(2, 31));
System.out.println(Math.rint(2.51));
System.out.println(Math.round(2.49));
System.out.println(Math.scalb(7.0, -10));
System.out.println(Math.signum(-10));
Random random1 = new Random();
System.out.println(random1.nextGaussian());
long time1 = System.currentTimeMillis();
long time2 = System.currentTimeMillis();
System.out.println(time1);
System.out.println(time2);
Date date1 = new Date(time1);
Date date2 = new Date(time2);
System.out.println(date2.after(date1));
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2016);
calendar.set(Calendar.MONTH, 3);
calendar.set(Calendar.DAY_OF_MONTH, 15);
// int week = calendar.get(Calendar.WEEK_OF_YEAR);
// System.out.println(week);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日hh点mm分ss秒");
String timeString = simpleDateFormat.format(date2);
System.out.println(timeString);
Calendar calendar2 = Calendar.getInstance();
calendar2.setTimeInMillis(System.currentTimeMillis());
int year = calendar2.get(Calendar.YEAR);
int month = calendar2.get(Calendar.MONTH);
int day = calendar2.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + (month + 1) + "月" + day + "日");
Calendar calendar3 = Calendar.getInstance();
calendar3.setTimeInMillis(System.currentTimeMillis());
int week = calendar3.get(Calendar.DAY_OF_WEEK);
System.out.println(week);
switch (week) {
case 1:
System.out.println("星期日");
break;
case 2:
System.out.println("星期一");
break;
case 3:
System.out.println("星期二");
break;
case 4:
System.out.println("星期三");
break;
case 5:
System.out.println("星期四");
break;
case 6:
System.out.println("星期五");
break;
case 7:
System.out.println("星期六");
break;
default:
break;
}
}
}
5、Date、Calendar、SimpleDateFormat
a、Date
a.1、after,before分别判断某一个日期是否在参数日期之后或之前。
a.2、compareTo:比较两个日期的顺序,同一时间,返回0
当前date如果小于参数date,则返回负数,反之返回正数。
b、Calendar
b.1、通过单例模式获得Calendar实例对象。
b.2、通过Calendar的一系列set方法,可以设置当前对象封装的时间
b.3、可以通过get方法+参数的形式输出制定的年、月、日、时、分、秒
c、SimpleDateFormat
a、可以格式化一个Date类型的时间对象到指定的格式。
(PS:Calendar相比于Date对象,更具有操作的灵活性)
package main;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CoreJavaDay13_2 {
public static void main(String[] args) throws ParseException {
//将2001年3月15号 15点37分5秒 格式化为毫秒数
Calendar calendar = Calendar.getInstance();
calendar.set(2001, 2, 15, 03, 37, 5);
long time1 = calendar.getTimeInMillis();
System.out.println(time1);
String date = "2001-03-15 15-37-05";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");
long time2 = simpleDateFormat.parse(date).getTime();
System.out.println(time2);
Date date2 = new Date(time1);
System.out.println(simpleDateFormat.format(date2));
}
}