java基础

 

一、变量与数据类型

1.

原始数据类型也称为基本数据类型,它们包括了最基本的 boolean、byte、char、
short、int、long、float 与 double 等类型。另一种数据类型为引用数据类型,它是以一
种特殊的方式指向变量的实体,这种机制类似于 C / C++的指针。这类的变量在声明
时是不会分配内存的,必须另外进行开辟内存空间的操作,如字符串与数组均属于这
种数据类型。

 

 二进制补码:

正数的补码是其本身;
负数的补码:符号位为1,其余位为该数绝对值的原码按位取反,然后加1。
所以最小数的补码形式为 1 0 0 0 0 0 0 0 ;
它的数值绝对值应该是各位取反再加1,即为
0 1 1 1 1 1 1 1 + 1 = 1 0 0 0 0 0 0 0 = 128
又因为是负数,所以是 - 128
而最大数是正数,原码和补码一样 所以是 +127

 2.常量的数据类型

java把整数常量的数据类型均视为int型,如果使用超过2147483647大小的常量,编译会出错。

需要加上L。long num = 329852547553L ;

 

3.字符

字符类型在内存中占有 2 个字节,可以用来保存英文字母等字符。计算机处理字
符类型时,是把这些字符当成不同的整数来看待,因此,严格说来,字符类型也算是
整数类型的一种。举例来说,Unicode 中的小写 a 是以 97 来表示

字符输出一定要加上单引号。

输出双引号:用转义字符,\"

 

4.取补码

System.out.println("a = "+a+" , ~a = "+(~a));

a = 127 , ~a = –128

 

 

二、类与对象

Person p = new Person(); 的过程

p变量是指向对象的参考地址。new了才会分配空间。

 

p1= new person();

p2=new person();

各自指向不同空间。

如果p1=new person();

p2=p1;

p1=null;

p2依旧指向原有空间。

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

 

构造方法:创建对象时自动调用的类名方法。

如果没有声明构造方法,则会自动创建一个无参无内容方法,如果已经声明有参方法,则

Person p = new Person();会出错。需要自己创建一个无参无内容方法。

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

 

equals和==区别:

equals用于比较内容,==用于比较内存位置。

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

 

关于String:

str1和str3指向同一内存。

当改变str1的值,须先断开原连接,再开辟新空间。

用new String创建:

实际上开辟了两个空间。

 

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

static关键字,公有属性,static方法中必须调用static数据类型。

 

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

main方法:

public:java虚拟机要调用类的main()方法,

static:执行方法时不必创建对象,

String数组:保存执行Java命令时传递给类的运行参数。

 

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

继承:

1.子类实例化过程中,首先会调用自己的构造方法,public student(){  },然后其中默认隐藏了一句super(),即会调用父类无参构造方法。

如果写了有参构造方法,会出现找不到Person类的报错。此时需要重新写一个无参的Person类构造方法。

 

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

this关键字:

1.调用本类的属性和方法。

2.调用构造方法,放在程序首行。

3.表示当前对象。

 

super关键字:

1.调用父类方法或属性。

2.调用父类构造方法,放在程序首行。

 

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

抽象类和接口:

1.接口必须对变量初始化

2.抽象类可以有普通方法,接口必须所有方法都是抽象方法。

3.一个类只能继承一个抽象类,但可以继承多个接口。

 

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

final关键字:

1.final标记的类不能被继承

2.final标记的方法不能被重写

3.final标记的变量只能赋值一次。

 

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

异常处理:

1.算术异常:如除数为0

2.空指针异常

3.找不到文件异常

 

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

访问控制符:

1.private(当前类访问权限):只能在本类中使用

2.default(包访问权限):同一个包下的其他类可访问,(不同包)子类都不可以访问

3.protected(子类访问权限):同一包下的其他类和不同包的子类都可以访问

4.public(公共访问权限):公共区域都可。

 

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

 多线程:

使用多线程的方法:

1.继承Thead类,实现public void run(){}方法,调用start开始。(如果调用run(),无效)

2.实现Runable接口,实现public void run(){}方法,通过Thread类,调用start方法开始。

 

继承Thead类:

Thead t = new Thead();

t.start();

t.start();

t.start();

无论多少次start,始终还是一个线程在运行。

 

new tThead().start();

new tThead().start();

new tThead().start();

各自有各自的资源,不共享,通过count数量

 

一般通过实现Runnable接口来共享资源。

用synchronized语句块控制原子性。

 

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

 

转载于:https://www.cnblogs.com/John-/p/7183319.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值