4760人加入学习
(15人评价)
Java编程学习第二季

制作于2018年3月14日

价格 免费

装箱:

把一个基本类型赋值给一个Integer(引用类型对象)进而形成一个基本类型包装类对象。

Integer i=100;//装箱=Integer.valueOf(100);

System.out.println(i );

拆箱:

续上代码:i+=100;//i=i+100;

把一个引用类型i跟基本类型100进行运算(此时系统自动将i转换成一个基本类型)进而形成把一个基本类型包装类对象转换成一个基本类型shu'ju。

相当于:i.intValue()+100;

[展开全文]

1.如果是一个很大的整数的话,比如:

long age=10000000000000000;

此时会报错;

所以使用BigInteger :表示一个很大的整数↓

BigInteger bi=new BigInteger(“10000000000000000”);

--因为这里传递的是字符串,所以没有范围限制;

2.BigInteger的构造方法:

BigInteger bi=new BigInteger();

但是:

要是用valueOf传递的话,有缺点,因为valueOf传递的是long类型,假如传递的是太大的数就传递不过去(当我们写一个数的时候,我们会有一个默认的类型去存储。一个整数的默认类型是int,但是传递的是100000000000,int类型存储不下)有范围限制。

BigInteger bi=BigInteger.valueOf();

[展开全文]

1.

对整数的一个包装类↑↑

2.

intValue这个方法把Integer的i2对象zhuan'haun成一个整型数。

3.

int number=Integer.parseInt("100");

System.out.println(number);

把字符串传换成int类型就可以做数值运算。

4.

String numberStr=Integer.toString(100);

System.out.println(numberStr);

5.numberStr=100+"";----把一个数字加上一个空字符串,就可以把这个数转换成字符串。

6.把一个整数转换成一个包装对象方法:

--Integer.valueOf(100);

------------------------------------------------

构造Integer有两种方式:

--Integer i2=new Integer(100);

--i2=Integer.valueOf(100);

--i2=Integer.valueOf("100");//来一个整数字符串

所以:valueOf可以为Integer构造一个对象并且可以传递一个数字或字符串。

------------------------------------------------

[展开全文]

通过BigDecimal做精确的加减乘除运算:

--创建方式:

 1.BigDecimal number1=new BigDecimal(“0.05”);//因为是字符串类型,所以无论如何传递的就是0.05

2. BigDecimal number1=BigDecimal.valueOf(0.01);//valueOf对0.01做了精度处理

 3.BigDecimal number3=new BigDecimal(0.05);//0.05在这里表示double类型,故传递数值不准备,输出结果为:0.0500000000000000277555等等。

--运算

BigDecimal result1=number1.add(number2);

BigDecimal result1=number1.subtract(number2);

BigDecimal result1=number1.multiply(number2);

BigDecimal result1=number1.divide(number2);

 

[展开全文]

1.Math只有两个常量:PI和E,其他都是构造方法。

2.--04:34

System.out.println(Math.abs(-3.4));--取-3.4的绝对值

--04:46

System.out.println(Math.round(3.4));--取3.4的四舍五入

--05:23

System.out.println(Math.sqrt(4));--取4的平方根

--06:10

System.out.println(Math.pow(2,3));--取2的3次方

--07:12

System.out.println(Math.ceil(3.1));--向上取整3.1--4

--08:00

System.out.println(Math.floor(3.1));--向下整取3.1--3

--08:25

System.out.println(Math.max(435,3));--取435和3的最大值

--09:00

System.out.println(Math.min(435,3));--取435和3的最小值

------------------------------------------------System.out.println(Math.random());--生成随机数(范围:【0,1),意思是大于等于0小于1)

要想生成【0,5)之间的随机数,System.out.println(Math.random()*5);即可。--【0,5)

--要想取得【0,5)之间的整数,那么把生成的随机数向下取整即可:

System.out.println(Math.floor(Math.random()*5));

或者:System.out.println((int)(Math.random()*5));--强制转换成整数int

--要想取得【6,8)之间的整数:

System.out.println((int)(Math.random()*3)+6);-

[展开全文]

1.Arrays不需要构造,因为里面都是静态方法。

2.要对一个数组排序(sort方法),那就要对该数组进行遍历:

for(int i:a)

3.int index=Arrays.binarySearch(a,23);

意思就是在a数组查找23的索引,并把这个索引传递给index。

4.

[展开全文]

StringBuilder和StringBuffer不同点:

1.前者线程安全(适用多线程),性能略低;后者线程不安全(bu适用多线程),性能略高;

线程安全&不安全:

线程多,效率高,但是共用性高,有可能造成资源冲堵,不安全。

[展开全文]

StringBuffer还有delete功能:

StringBuffer sb1=new StringBugger("sikiedu");

sb1.delete(0,3);

-----该删除功能会删除索引为0开始,索引为2结束的字符,但不包括索引为3的字符。

 

StringBuffer还有insert功能:

sb1.insert(3."www");

-----该插入功能会在索引为3前面把www插入。

 

StringBuffer还有substring功能:

sb1.substring(0,6);

---截取方法对指范围字符串截取后返回一个新的StringBuffer对象,对原有StringBuffer对象不做影响。(所以输出还是原有字符串)

 

StringBuffer还有replace功能:

sb1.replace(3,5,"--");

---替换方法包含开始索引,不包括结束索引:3跟4索引的字符串替换成--,5索引保持不变。

[展开全文]

1.StringBuffer不止可以追加字符串,还可以追加字符、整型数字、boolean类型(true、false)。

2。无论调用多少个append,最终一直在处理的对象(内存区域)也还是append的对象。简称“链式编程。

所以调用了append后,用==判断两个字符串的时候,返回的是true。

当我们没有给StringBuffer赋值的时候,可以利用capacity查看其容量(因为其容量的分配都是依据传入字符串的长度定义)

StringBuffer sb1=new StringBuffer();

System.out.println(sb1.capacity());

-----输出结果会是16,意思就是说其容量能够存放16个字符。

[展开全文]

StringBuffer:可以创建一个可以被修改的字符串(StringBuffer属于java.lang,所以不用引用java.lang,直接使用StringBuffer即可)

append:追加

String也可以追加:(对于String而言,追加不是把一个放在另一个的内存区域后面,因为String内容不可修改,而是把两个对象复制到同一块新的内存区域里面实现追加功能)

String s="sikiedu";

s+=".com";

而StringBuffer声明之后,它在内存区域所占较大,它不止于能够存放传递字符串,还可以在同一块内存区域存放追加字符串。

[展开全文]

**---给字符串s声明值的方法---**

String s="sikiedu.com";

String s=new String("sikiedu.com");

String s=new String(new char[] {'s','k','i','e','d','u','.','c','o','m'});

**------------------------------**

以上第三种方法是传递字符数组,他会把字符数组里面的字符拼接起来成一个字符串并传递给String s。

 

1.String:声明的字符串不能修改(内容无法修改,引用可改)

StringButter&StringBuilder:声明的字符串能修改

2.ctrl+alt+n:快速复制一行

[展开全文]

1.ctrl+shift+o:自动引入类

2.String str=s.next();---接收用户输入的字符串

3.int i=s.nextInt();---接受用户输入的整型数据

4.isHasNext();用法:

因为isHasNext()是boolean类型,假如用isHasNextInt();我们在控制台输入一个字符串,那么他会输出false,在控制台输入一个整型数据,那么输出true。

5.hasNext是用来判断,next用来接收:

[展开全文]

1.要想引入别的工程的包,必须对别的工程的包当成一个jar包导出,然后在要引入该工程的包的工程导入这个jar包。

[展开全文]

只要new,无论new里面的参数是否一致,都会在堆里面申请新的内存区域。而且,==比较的是内寸地址,因为s1跟s2的内存地址不一样,所以最后结果输出:false

为什么字符串里面的equals比较的是数据?

因为字符串是系统的一个类,系统把equals这个方法重写了,让这个equals去比较数据。

重写代码:

public boolea equals(Student s){

if(this.age==s.age&&this.name.equals(s.name)){

return true;}

else{

return false;

}}

-----this.age指的是当前对象;s.age指的是要比较的对象

[展开全文]

比较:

1、==(用于基本类型的比较使用)

2、equals(用于引用类型的比较使用)

==:比较应用类型的时候,==是用来比较引用

构造类型不一样,new出来的对象在堆里面申请内存区域,String s1会在栈中出现,指向堆中首地址为078的内存区域,也就是new出来的对象在堆里面申请内存区域。而定义一个常量www.sikiedu.com是存放在静态区。

s1里面的078指向堆中的078,堆中的078内的089指向静态区的089。

 

假如不是用==,是用equals

[展开全文]

1.创建类的时候,abstract和final不能同时选择(abstract是抽象类,它必须要被继承才能使用;final不能被继承)二者矛盾

2.public和package二者在创建的时候区别:

public:公开,在任何地方都能使用;

package:默认的(default),只能在当前包使用

3.假如一个类没有父类,那么默认它是继承自java.lang.Object这个类。

 

所有类都是从Object派生出来,Object是所有类的父类。而Object这个类是在java.lang这个包里面,但是这个包不需要引用,直接使用包内的类即可。

当我们把一个引用类型的对象当作字符串输出的时候,系统会默认调用toString()方法,所以System.out.println(s);的运行结果等同于System.out.println(toString()); 

toString()这个方法默认的作用就是取得对象的内存地址(引用)。

toString()这个方法返回的是字符串,如果不想输出内存地址,可以对toString()这个方法进行重写:

[展开全文]
Kwong · 2021-07-16 · 0415-java.lang 0

1.ctrl+shift+F:自动排序(f:format)

2.ctrl+up(down):切换上一个项目(下一个项目)

3.选中一行代码,按住alt+上下任意方向键对选中代码进行位置的上下调整。

4.ctrl+/  :单行注释;ctrl+shift+/ :多行注释

[展开全文]

System.err.println("");

-----输出内容字体颜色会因为err而变成红色

[展开全文]

授课教师

SiKi学院老师

课程特色

下载资料(1)
视频(87)