Java基础再学习——简单笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/li_jeremy/article/details/79516949

byte -127~+127
import java.util.Scanner; 输入时要导入的包
short -32786~+32786
int -2147483648~+2147483648

在用float时在数字后面加一个f用来区分double
浮点数还可以用e来表示 例如1.25e2就是表示科学计数法

布尔类型 0 假 1 真

以 l或L结尾时是long类型的,没有字母就是int类型

字符放在单引号中字符串放在双引号中

在数据类型转换时要遵循小的可以向大的转换,但是大的不一定可以向小的转换。
byte->short->int->long->float->double
byte->cahr->int需要进行强转
例:char c =’A’;
shart a =80;
c=(char)a;

//查看一个整数对应的二进制数方法
System.out.println(Integer.toBinaryString(i2));

两个short类型相加时结果为int,知道就好。

void keng(fianl int j){
j=5; //在这里不正确因为j 在后面调用方法时会对j进行赋值。

}

再用Scanner进行字符串输入时,在前面若有整数的输入,在后面如果要使用换行键,
应该在String a=s.nextLine();前面再加一句相同的话因为要吸收回车。

当两个运算单元为不同的类型时,运算结果按照最长的长度计算

i++先取值,再运算
++i先运算,再取值

两数组复制 System.arraycopy(a,0,b,0,3);其中 a表示首数组,0表示从首数组复制数据的位置,后面类似,3为复制的长度。

导包 import java.util.Scanner;

二维数组 int a[][] = new int [][]{{1,2,3},{1,2,3},{2,3,4}};

Arrays类常用方法:
复制
copyOfRange(int []orienge,int from,int to)
//第一个表示开源数组
//第二个表示开始位置(取得到)
//第三个参数表示结束为止(取不到)
转换为字符串
String content = Arrays.toString(a);
a表示待转换的数组。
排序
Arrays.sort(a);
搜索
先用sort排序再用binarySearch进行查找。
判断是否相同
Arrays.equals(a,b);
填充
使用一个值填充整个数组 Arrays.fill(a,5);

Hero h = new Hero();
h表示是Hero类型的,同时也是一个引用,指向新建的Hero对象(new Hero());

方法参数
可以利用public void attack(Hero… heros) {

    for (int i = 0; i < heros.length; i++) {

        System.out.println(name + " 攻击了 " + heros[i].name);



    }

}

实现可变参数,在后面定义时根据自己的需要自己定义对象参数

构造函数:方法名和类名一样没有返回类型,无参的构造函数就是默认构造函数,
如果提供了一个有参数的构造函数并没有显示的提供无参构造函数,则
默认构造函数就没有了。

打印this在内存中的虚拟地址
public void showAddressInMemory(){
System.out.println(“打印this看到的虚拟地址:”+this); }
this可以替换成引用名称。
this可用于在一个构造函数中调用另一个构造函数,直接this(name)即可。
对于this的理解可以是 小红说“我吃饭了” 这个我指的是小红;小明也说“我吃饭了”但是这个我指的是小明。

包 在程序在开始的地方声明该类所属于的包
在其他程序中使用当前类时应该导入 用 import 报名.类名;

在使用接口时,若小创建一个接口用interface
实现一个接口用implements;
格式类似继承
public class ADHero implements AD{
}

对象的转型
通常情况下对象的类型和类名相同,而指向对象的引用的类型也是类名,一般情况下这两个的类型是相同的。
当这两者不同时,我们有一个判断的方法,就是把右边的当作左边的来用,看能否说的通。
注:所有的子类转父类都是说得通的。
当父类转子类时父类所指的对象和子类相同时,可以进行强制转换,当不相同时,不行。
例如:Hero h = new Hero();
ADHero ad = new ADHero();
Support s = new Support();
h=ad;//子类转父类 可以转换
ad=(ADHero)h;//父类与子类的指向相同,可以进行强转。
s = (Support)h; //不能强转 会抛出异常ClassCastException类型转换异常。
注:没有继承关系的两个类强转一定会失败。
类转换为接口:AD adi = ad//把一个ADHero类型转换为一个AD接口。

h1 instanceof Hero用来判断是否是Hero类型,或者Hero的子类
h1表示对象,Hero表示用来判断的类型。

实现类的多态要满足以下条件:
父类(接口)引用指向子类对象
调用的方法有重写
在调用时父类的方法中要有参数参数为父类的对象的引用。

object类
finalize()在一个对象没有引用指向时,就满足垃圾回收机制JVM内部就自动回收,调用此函数。

equals()用于判断两个对象的引用是否相等,h1.equals(h2);

==用于判断两个引用是否指向了同一个对象。
还提供了线程同步的相关方法。

final
当final修饰类时表示该类不能被继承。
修饰方法时不能被重写
修饰变量变量就只有一次被赋值的机会
修饰引用表示该引用只能指向对象一次。

抽象类
在类中声明一个方法,这个方法实体中不方任何东西,这种方法叫做抽象方法,用abstract修饰,当一个类有抽象方法时该类必须被声明为抽象类。
一个类可以在不提供抽象方法的前提下变为 抽象类,但是一旦被抽象就不能被实例化。

抽象类和接口的区别
抽象类可以定义
public,protected,package,private
静态和非静态属性
final和非final属性
但是接口中声明的属性,只能是
public
静态
final的
即便没有显示的声明

内部类
内部类分为四种:非静态内部类、静态内部类、匿名类、本地类。
非静态内部类:public class He{
class Hn{
He h =new He();
Hn n =h.new Hn(); //重点
}
}

封装类
基本类型转换为封装类:Integer i = new Integer(i);
封装类转换为接本类型:int i2 = it.inValue();
自动装箱:通过 符号“=”把基本类型转换为类类型就叫装箱: Integer i2 = i;
自动拆箱:int i3 =it;通过=进行自动拆箱。
int的最大值通过Integer.MAX_VALUE获得;

数字转换为字符串
1.使用String中的valueOf。
例:
int i =8;
String str = String.valueOf(i);
2.先把基本类型装箱为对象,然后调用对象的toString。

字符串转换为数字
调用integer的静态方法parselent
例:
int i= Integer .parseIent(str);

格式化输出:
格式示例如下
String sentenceFormat =”%s 在进行了连续 %d 次击杀后,获得了 %s 的称号%n”;

System.out.printf(sentenceFormat,name,kill,title);
换行符\n表示另起一行
回车符\r表示回到一行的开头。

猜你喜欢

转载自blog.csdn.net/li_jeremy/article/details/79516949