标题:Java基础知识复习第二天
学习内容:
提示:这里可以添加要学的内容
例如:
1、 Java Number和Math类
2、 Java Character类
3、 Java String类
4、 Java StringBuffer和StringBuilder类
5、 Java Scanner类
内容详情:
1.JavaNumber和Math类
在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类。
所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。
下面的代码是Number和Math类的一些常用的基本方法,也可以直接去查API
装箱和拆箱下面的代码中有
package SecondDay;
public class Number {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer a=50;// **赋值时,由于a是对象,所以有一个将a进行装箱的过程**
a+=2;//**要进行运算,有一个将a进行拆箱的过程**
System.out.println(a);
System.out.println("----------------------------");
//以下是Math类的一些方法
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//-----------------------------------------------------------------
// random() 方法用于返回一个随机数,随机数范围为 0.0 =< Math.random < 1.0。
/*
System.out.println(Math.random());
System.out.println(Math.random());
//每次运行结果都不一样
*/
//-----------------------------------------------------------------
//tan2() 方法用于将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta。
//该方法通过计算 y/x 的反正切值来计算相角 theta,范围为从 -pi 到 pi。
//toDegrees() 方法用于将参数转化为角度。
//toRadians() 方法用于将角度转换为弧度
/*
System.out.println(Math.atan2(5, 4));//0.8960553845713439
System.out.println(Math.toDegrees(30));//1718.8733853924698
System.out.println(Math.toRadians(30));//0.5235987755982988
*/
//-----------------------------------------------------------------
// sin() 方法用于返回指定double类型参数的正弦值。
// cos() 方法用于返回指定double类型参数的余弦值。
// tan() 方法用于返回指定double类型参数的正切值。
// asin() 方法用于返回指定double类型参数的反正弦值
// acos() 方法用于返回指定double类型参数的反余弦值。
// atan() 方法用于返回指定double类型参数的反正切值。
/*
double b = 30;
double c = Math.toRadians(b);
System.out.println(Math.sin(c));//0.49999999999999994
System.out.println(Math.sin(Math.PI/2));//1.0
System.out.println(Math.cos(c));//0.8660254037844387
System.out.println(Math.cos(Math.PI/2));
//6.123233995736766e-17 也就是 0.00000000000000006123233995736766 其实非常接近于0了。
System.out.println(Math.cos(Math.PI/4));//0.7071067811865476
System.out.println(Math.tan(c));//0.5773502691896257
System.out.println(Math.asin(c));//0.5510695830994463
System.out.println(Math.acos(c));//1.0197267436954502
System.out.println(Math.atan(c));//0.48234790710102493
*/
//-----------------------------------------------------------------
// //pow() ;pow() 方法用于返回第一个参数的第二个参数次方。
// //sqrt();sqrt() 方法用于返回参数的算术平方根。
/*
System.out.println(Math.pow(2.0,3.0));//8.0
System.out.println(Math.sqrt(4));//2.0
*/
//-----------------------------------------------------------------
// //exp();exp() 方法用于返回自然数底数e的参数次方。
// //log();log() 方法用于返回参数的自然数底数的对数值。
/*
System.out.println(Math.E);//2.718281828459045
System.out.println(Math.exp(2.0));//7.38905609893065
System.out.println(Math.E);//2.718281828459045
System.out.println(Math.log(7.38905609893065));//2.0
*/
//-----------------------------------------------------------------
// min();max();输入参数的时候是相同类型的
/*
System.out.println(Math.min(5, 7));//5
System.out.println(Math.max(5, 7));//7
*/
//-----------------------------------------------------------------
// ceil();//向上取整 返回 double 类型数据
// floor();//向下取整 返回 double 类型数据
// rint();//小于等于0.5向下取整,大于0.5向上取整 返回 double 类型数据
// round();//小于0.5向下取整,大于等于0.5向上取整 返回一个最接近的int、long型值,方法会指定返回的数据类型。
/*
double b=100.1;
double c=100.5;
double d=100.7;
float e=100.1f;
float f=100.5f;
float g=100.7f;
System.out.println(Math.ceil(b));//101.0
System.out.println(Math.ceil(c));//101.0
System.out.println(Math.ceil(d));//101.0
System.out.println(Math.floor(b));//100.0
System.out.println(Math.floor(c));//100.0
System.out.println(Math.floor(d));//100.0
System.out.println(Math.rint(b));//100.0
System.out.println(Math.rint(c));//100.0
System.out.println(Math.rint(d));//101.0
//round函数返回int类型的时候只能用float作为参数,而返回long的话用double
System.out.println(Math.round(b));//100
System.out.println(Math.round(c));//101
System.out.println(Math.round(d));//101
System.out.println(Math.round(e));//100
System.out.println(Math.round(f));//101
System.out.println(Math.round(g));//101
*/
//-----------------------------------------------------------------
// //abs();abs() 返回参数的绝对值。参数可以是 int, float, long, double, short, byte类型。
/*
int b=-10;
double c=-20;
float d=-30;
short e=20;
System.out.println(Math.abs(b));//10
System.out.println(Math.abs(c));//20.0
System.out.println(Math.abs(d));//30.0
System.out.println(Math.abs(e));//20
*/
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//以下是Number类的方法
// //parseInt()
// parseInt() 方法用于将字符串参数作为有符号的十进制整数进行解析。
// 如果方法有两个参数, 使用第二个参数指定的基数,将字符串参数解析为有符号的整数.
// static int parseInt(String s)
// static int parseInt(String s, int radix)
// s -- 十进制表示的字符串。radix -- 指定的基数。
/*
String s="12";
System.out.println(Integer.parseInt(s));//12
System.out.println(Double.parseDouble(s));//12.0
System.out.println(Integer.parseInt("12",8));//10
*/
//-----------------------------------------------------------------
// //toString();返回以一个字符串表示的 Number 对象值
/*
System.out.println(a.toString());
*/
//-----------------------------------------------------------------
// //valueOf();
// valueOf() 方法用于返回给定参数的原生 Number 对象值,参数可以是原生数据类型, String等。
// 该方法是静态方法。该方法可以接收两个参数一个是字符串,一个是基数。
// 有以下几种格式
// static Integer valueOf(int i) 返回一个表示指定的 int 值的 Integer 实例。
// static Integer valueOf(String s)返回保存指定的 String 的值的 Integer 对象。
// static Integer valueOf(String s, int radix)
// 返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。
// i -- Integer 对象的整数。s -- Integer 对象的字符串。
// radix --在解析字符串 s 时使用的进制数,用于指定使用的进制数。
/* Integer b=36;
String c="xxx";
String d="525";
System.out.println(Integer.valueOf(b));36
System.out.println(Double.valueOf(b));36.0
System.out.println(String.valueOf(c));xxx
System.out.println(Integer.valueOf(d,8));341
*/
//-----------------------------------------------------------------
// //equals
/*
System.out.println(a.equals(52));ture
System.out.println(a.equals(53));false
*/
//-----------------------------------------------------------------
// //xxxvalue();
/*
a+=100;
System.out.println(a.intValue());//152
System.out.println(a.byteValue());//-104,这个结果我想了想,应该是超过127之后,又从-128开始然后+152-128
System.out.println(a.shortValue());//152
System.out.println(a.longValue());//152
System.out.println(a.floatValue());//152.0
System.out.println(a.doubleValue());//152.0
a+=10000;
System.out.println(a.doubleValue());//152.0
*/
//-----------------------------------------------------------------
// //compareTo();
/*
System.out.println(a.compareTo(5));//大于参数5返回1
System.out.println(a.compareTo(53));//小于参数53返回-1
System.out.println(a.compareTo(52));//等于参数52返回0
*/
//-----------------------------------------------------------------
}
}
2.Character类
和之前的都差不多,这里给一个查API的链接 java.lang.Character API
3.String类
在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。
一旦创建了 String 对象,那它的值就无法改变了,需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。这两个类优缺点下一点会描述。
常用的方法很多,和之前的都差不多,这里给一个查API的链接
Java String API
4.StringBuffer和StringBuilder类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
5.Scanner类
首先需要导包,Java.lang是默认的不需要导包,但是这个不属于所以需要导包
import java.util.Scanner;
下面的代码是三种输入方式,next()和nextLine()的比较
package SecondDay;
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//普通的输入方式
Scanner sc =new Scanner(System.in);
int x=sc.nextInt();
System.out.println(x);
//next()方式
if(sc.hasNext()) {
String st=sc.next();
System.out.println(st);
}//输入两个字符串 aaaa bbbb 结果只打印aaaa.
//nextLine()方式,输入两个字符串 aaaa bbbb 结果打印aaaa bbbb.
if(sc.hasNextLine()) {
String st=sc.nextLine();
System.out.println(st);
}
}
}