2018-03-18

2019-03-22  本文已影响0人  青楼楼长

JavaSE篇

1. String类型其实并不是基本类型,但是它是如此广泛的被使用,常常被误以为是一种基本类型。String类型是Immutable的,一旦创建就不能够被改变。

3. 

final 修饰一个变量,有很多种说法,比如不能改变等等 

准确的描述是 当一个变量被final修饰的时候,该变量只有一次赋值的机会

4.

静态代码块在主方法执行之前就已经存在,普通代码块需要在主方法中执行,而且不像之前似的从上往下走代码,static修饰的代码块怎么着都会先执行,就算static修饰的代码块在主方法下边也会先执行静态代码块 

5. 

如果有任何运算单元的长度超过int,那么运算结果就按照最长的长度计算 

比如 

int a = 5; 

long b = 6; 

a+b -> 结果类型是long

6. 

无论长路与还是短路与(&对比&&)

两边的运算单元都是布尔值

都为真时,才为真

任意为假,就为假

区别

长路与 两侧,都会被运算

短路与 只要第一个是false,第二个就不进行运算了

7.

无论长路或还是短路或

两边的运算单元都是布尔值

都为假时,才为假

任意为真,就为真

区别

长路或 两侧都会被运算

短路或 只要第一个是true的,第二个就不进行运算了

8.

异或^ 

不同,返回真 

相同,返回假

 System.out.println(a^b); //不同返回真

  System.out.println(a^!b); //相同返回假

9.

equals() 用于判断两个对象的内容是否相同

假设,当两个英雄的hp相同的时候,我们就认为这两个英雄相同

10.

==

这不是Object的方法,但是用于判断两个对象是否相同

更准确的讲,用于判断两个引用,是否指向了同一个对象

11.

当Hero被修饰成final的时候,表示Hero不能够被继承

12.

抽象类与接口的区别

区别1:

子类只能继承一个抽象类,不能继承多个

子类可以实现多个接口

区别2:

抽象类可以定义

public,protected,package,private

静态和非静态属性

final和非final属性

但是接口中声明的属性,只能是

public

静态

final的

即便没有显式的声明

13.

内部类:

非静态内部类 :在一个类里面定义,可以直接访问外部类的private成员变量。

静态内部类 :除了可以访问外部类的静态成员变量之外和普通类没有区别。

匿名类 :匿名类指的是在声明一个类的同时实例化它,使代码更加简洁精练

               通常情况下,要使用一个接口或者抽象类,都必须创建一个子类

               有的时候,为了快速使用,直接实例化一个抽象类,并“当场”实现其抽象方法。

                既然实现了抽象方法,那么就是一个新的类,只是这个类,没有命名。

                 这样的类,叫做匿名类

本地类:本地类可以理解为有名字的匿名类

              内部类与匿名类不一样的是,内部类必须声明在成员的位置,即与属性和方法平等的位置。

              本地类和匿名类一样,直接声明在代码块里面,可以是主方法,for循环里等等地方

14.

默认方法是JDK8新特性,指的是接口也可以提供具体方法了,而不像以前,只能提供抽象方法

Mortal 这个接口,增加了一个默认方法 revive,这个方法有实现体,并且被声明为了default

15.

数字转字符串: 

        //方法1

        String str = String.valueOf(i);

        //方法2

        Integer it = i;

        String str2 = it.toString();

字符串转数字:

int i= Integer.parseInt(str);

16.

 

保存一个字符的时候使用char

        char c1 = 'a';

        char c2 = '1';//字符1,而非数字1

        char c3 = '中';//汉字字符

        char c4 = 'ab'; //只能放一个字符

17.字符串详解

       String garen ="盖伦"; //字面值,虚拟机碰到字面值就会创建一个字符串对象

        String teemo = new String("提莫"); //创建了两个字符串对象

        char[] cs = new char[]{'崔','斯','特'};

        String hero = new String(cs);//  通过字符数组创建一个字符串对象

        String hero3 = garen + teemo;//  通过+加号进行字符串拼接

        String 被修饰为final,所以是不能被继承的

        代码比较复制代码

a       charAt(int index)获取指定位置的字符

b        toCharArray()获取对应的字符数组

c        String subString2 = sentence.substring(3,5);

d        String sentence = "盖伦,在进行了连续8次击杀后,获得了 超神 的称号";

        //根据,进行分割,得到3个子字符串

        String subSentences[] = sentence.split(",");

e        trim 去掉首尾空格

f        String sentence = "盖伦,在进行了连续8次击杀后,获得了超神 的称号";

        System.out.println(sentence.indexOf('8')); //字符第一次出现的位置

        System.out.println(sentence.indexOf("超神")); //字符串第一次出现的位置

        System.out.println(sentence.lastIndexOf("了")); //字符串最后出现的位置

        System.out.println(sentence.indexOf(',',5)); //从位置5开始,出现的第一次,的位置

        System.out.println(sentence.contains("击杀")); //是否包含字符串"击杀"

g        string类型一致的特例。

h

i

上一篇下一篇

猜你喜欢

热点阅读