第二周学习视频(一)

一、游长实参表

利用游长实参表,可在创建方法时不指定实参的个数
eg.public static double average(double…numbers)
一个参数表中只能出现一次省略号,并且省略号及其类型必须放在参数表的末尾.

二、this

每个对象都可以用关键字this引用自己, 称为this引用(即this指向当前对象)。
构造函数体中,利用this来调用同一个类中的另一个构造函数,若这个this调用不是构造函数的第一条语句则会产生语法错误。
类的方法试图直接通过this来调用构造函数,也会产生语法错误。

三、Java API包

Java包含了许多预定义的类,按相关性被分组成了不同的类别,这些类别称为包。 这些包被统称为java应用编程接口(API)java类库
常见:java.util、java.applet、java.io、java.net、java.swing...

四、常用类库- System类

System类是一个公共最终类,不能被继承,也不能被实例化。
System类定义的方法丰富且实用,其所有的变量和方法都是静态的

五、常用类库- Math类

  1. 三角函数:sin,cos
  2. 指数:pow(y,x)
  3. 最大、最小值:max(y,x),min(y,x)
  4. 生成随机数:random(只能生成0.0—1.0之间的随机double值)
    eg. randomNumbers.nextInt();
    区别:Random类(number=偏移值+缩放率*randomNumbers.nextInt(n);)
    eg. Random randomNumbers=new Radom();
    int randomValue=randomNumbers.nextInt();
  5. ...

六、常用类库- Date类

实用Date类的构造方法,可以得到一个完整的日期。
java.util.Date类中实际上取得的时间是一个非常正确的时间。但因为其显示的 格式不理想,不符合中国人的习惯要求,可使用DateFormat类对日期进行格式化操作 。

七、常用类库- Calendar类

Calendar类可以将取得的时间精确到毫秒。
这个类是抽象类,可以使用它的具体实现类GregorianCalendar

八、数组

静态性:一旦创建就不能修改数组的长度。
类似于动态数组的类型:类Vector,长度可以变大或缩小。


数组是对象,是引用类型。
数组的元素可以是基本类型或引用类型。


使用关键字new,并指定数组元素的类型与个数。
eg. int c[]=new int[12];
int c[]; c=new int[12];
int[] c;//c=new int[12];


多维数组:最常用的多维数组是二维数组。
eg. int[][] a = new int[3][4];

九、字符串

与C语言不同: 字符(char)数组不是字符串 (String)
String数值不必以'\u0000'结束。


eg. String s1 = null;
String s2 = new String( );
String s3 = "您好!";
String s4 = new String( s3 );


int length():返回字符串的长度。
方法 charAt(int index):获得字符串指定位置的字符
方法 getChars(int srcBegin, int srcEnd, char[ ] dst, int dstBegin):复制字符串。

十、== 运算符

当用于基本数据类型(如int)时,用于判别是否相等。
当用于引用数据类型(如String)时,用来判别引用是否指向相同的对象


Java虚拟机中含有字符串池(直接量在此池内),相同内容的字符串直接量->相同的对象。
eg.s1 = "hello"; // 字符串直接量
s2 = new String( "hello" );
s1 == "hello"; // true
s2 == "hello"; // false

十一、字符串比较

boolean equals(Object anObject):
比较当前的字符串与指定的对象(判断字符串内容是否相等)。
比较结果为真当且仅当给定的参数不为空,并且具有完全相同的字符序列。
eg. s1.equals( "Hi" );


查找字符串(String)中的字符或子串:
方法indexOf,返回第一次找到的时下标,如果没有找到,则返回-1 。
eg.String name = "CoolTools"; System.out.println (name.indexOf("oo"));//1


其他比较方法:略。

十二、类String的成员方法valueOf

静态(static)成员方法valueOf,将参数的值转化成相应的字符串。
对象还可以通过方法toString转化成字符串。

十三、其它String方法

s1.trim():返回新字符串,源字符串最前面和最后面的的空白符(即返回去掉前后空白字符的子串);
如果字符串没有被改变,则返回源字符串的引用


s1.toString( ):由于s1本身就是字符串了,所以返回s1本身。
其它引用类型也可以通过方法toString,生成相应的字符串。


s1.toCharArray( ):将字符串转换成字符数组。


其他String方法:略。

十四、类StringBuffer

补充:引用

引用:保存对象对应的地址信息。
eg. String str="hello";//"hello"所在地址是0x10,则str的值是地址0x10
str="java"//"java"所在地址是0x11,则str的值变为地址0x11


当"=="用于引用数据类型(如String)时,用来判别引用是否指向相同的对象
eg.s1 = "hello"; //字符串直接量"hello"所在地址是0x10,则s1的值是地址0x10
s2 = new String( "hello" ); //s2的值是另一个同为"hello"内容的对象的地址0x11,则s1的值是地址0x11
s3 = "hello"; //s3的值也是字符串直接量"hello"的地址,则s3的值也是地址0x10
s1 == "hello"; // true,即s1的值是字符串直接量"hello"的地址
s2 == "hello"; // false,即s2的值不是字符串直接量"hello"的地址
s1 == s2; // false,即s1和s2的值不都是字符串直接量"hello"的地址
s1 == s3; // true,即s1和s3的值同为字符串直接量"hello"的地址

    // 基本类型参数,原始value不会被更改
    public void func(int value) {
        value = 100;
    }

    // 对于没有提供修改自身的成员方法引用类型,原始str不会被更改
    public void func(String str) {
        str = "hello";
    }

    StringBuilder sb = new StringBuilder("test");

    // 对于提供修改自身的成员方法引用类型,原始的sBuilder会被更改
    public void func(StringBuilder sBuilder) {
        sBuilder.append("aa");
    }

    // 原始的sBuilder不会被更改
    public void test(StringBuilder sBuilder) {
        sBuilder = new StringBuilder("111");
    }
posted @ 2020-02-24 09:09  大萌神  阅读(124)  评论(0编辑  收藏  举报