Java基础语法

java面向对象思想-->一切皆对象,一切操作皆有对象。
基本数据类型有自己的包装类;

 

内存:
栈-->存放对象名
堆-->存放对象属性
全局代码区-->存放所有方法
全局数据区-->存放static类型的属性

 

数组(引用类型):
声明数组:
数据类型 数组名[ ];
数据类型[ ] 数组名;
创建数组对象:
数组名 = new 数据类型[数组大小];

 

类对象的定义:
类名 对象名 = new 类名();

 

基本数据类型:
int、char、float、double、byte、short、long、boolean;
除基本数据类型外,其余的变量类型都是引用类型;

 

String类:
String name = new String("张三");
开辟两个空间,其中一个是垃圾空间;
String name = "张三";
开辟一个空间,建议使用;
结论:一个字符串是String类的一个匿名对象;

 

this关键字:
this表示当前对象;
可以调用本类的属性和方法;
this();放在一个构造方法首行,调用本类其他的构造方法;

 

super关键字:
可以调用父类中被覆盖的属性和方法;
supper();放在一个构造函数首行,根据参数调用父类中特定的构造方法;

 

代码块:
普通代码块:写在一个方法中。{}
构造块:直接写在一个类中,优先于构造方法执行,执行多次。类名{}
静态块:直接写在一个类中,为静态属性初始化,优先于构造块和构造方法执行,仅执行一次。static{}
同步代码块:

 

类的继承:
class 子类名 extends 父类名{}
java只支持单继承,不允许多重继承,但允许多层继承。

  

final关键字:
在声明变量,方法,类时使用;
fianl标记的类不能被继承;
fianl标记的方法不能被重写;
final标记的变量即成为常量,只能赋值一次;

 

抽象类和抽象方法:
用abstract关键字声明;
抽象方法只需声明,具体实现在子类中完成;
抽象类至少含有一个抽象方法;
抽象类的非抽象子类必须重写所有抽象方法;

 

接口(interface):
定义格式:
interface 接口名{}
接口中的方法自动定义为抽象方法,数据自动定义为常量;
接口可以继承(允许多重继承),格式为:
interface 接口名 extends 接口A,接口B{}
接口通过子类实现(允许多重实现),格式为:
class 类名 implements 接口A,接口B{};
子类可以同时继承父类和实现接口,格式为:
class 类名 extends 父类名 implements 接口A,接口B{};

 

子类对象与父类对象之间的转换:
子类对象向父类对象转换(向上转型,自动转换)
父类对象 = 子类对象;
父类对象向子类对象转换(向下转型,强制转换)
子类对象 = (子类名)父类对象;

 

多态性:
方法多态性:即重载,根据传入参数不同,完成不同的功能。
对象多态性: 在继承关系中,如果子类重写了父类的方法,则在子类与父类发生转型时,自动调用重写的方法。

 

instanceof关键字:
对象名 instanceof 类名;
判断对象是否是类的实例,返回boolean类型;

 

 Object类:
默认所有的类都继承自Object类,所有对象都可以向Object类对象进行转型。
类中几个常用的方法:
toString()方法:在打印对象的时候默认调用,默认返回对象的地址;声明格式为:
public String toString()
equals()方法:进行对象比较,必须重写后才能使用,声明格式为:
public boolean equals(Object obj)

 

内部类:
内部类是定义在类中或方法中的类;
在方法中定义的内部类如果要访问方法中的变量,变量前要用final标记,该标记并不表示一个常量。

 

包(package):
包就是一个存放类的文件夹;包的定义解决了在多人开发中类重名的问题(类似于C++中的命名空);
定义包(可以嵌套):
package 包名[.包名2.包名3];
导入包(或包中的类):
import 包名[.类名];
如果想让程序根据需要导入类,可以使用:
import 包名.* ;
包中的类如果要被外部访问时,必须定义成public class;
如果导入的不同包中有重名类,使用该类时要用包名限定:名.类名

 

java中的四种访问权限:
public:公有
protected:受保护
default:默认
private:私有

 

private

default

protected

public

同一类中的成员

同一包中的成员

不同包中的子类

不同包中的非子类

 

 异常处理:
所有异常类都是Exception类的子类,所有异常都是异常类的对象;
try{//抛出的为异常类的对象;
 可能出现异常的语句;
}
catch(异常类 标示符){//可以重载
 异常处理语句;
}
finally{//不论是否发生异常都要执行的部分
}
声明异常:
throws 异常类
用于方法的声明语句后,表示该方法不处理异常,而交给上级调用处处理;
抛出异常:
throw 异常类对象;
用于抛出自定义的异常;

 

多线程:
可以通过实现Runnable接口或继承其子类Thread类创建线程;
每个线程都是通过类中的方法run()来完成操作;
启动线程时调用Thread类对象的方法start(),该方法自动调用类中的run()方法来启动线程;

 

多线程同步:
多线程共享资源时,要实现对资源的同步访问;
可以用synchronized关键字标识一个由监视器监视的方法或区域
标识方法:synchronized 返回类型 方法名(){}
标识区域(即同步块):synchronized(对象){} //对象通常为正在运行的对象this
注意防止多线程同步时产生死锁问题;

 

Java IO:
字节流->byte[](非缓冲流):
InputStream
OutputStream
字符流->char[](缓冲流):
Reader
Writer
打印流:是OutputStream/Writer的子类,提供了更多打印数据的方法;
PrintStream
PrintWriter
System.out:标准输出流,PrintStream类的对象,把输出送到默认的显示位置(通常为显示器);
System.err:标准错误流;
System.in:标准输入流,InputStream类的对象,从标准输入设备获取输入(通常为键盘);
BufferedReader:Reader类的子类,从缓存中将输入数据一次性读取,实例化时接收一个Reader类的对象;
InputStreamReader:将输入的字节流转化为字符流;
OutputStreamWriter:将需要输出的字符流转化为字节流;

 

Java类集接口(java.util.*):
Collection
(子接口)List
 (子类)ArrayList
 (子类)Vector
(子接口)Set
 (子类)HashSet
 (子类)TreeSet
Map
 (子类)HashMap
 (子类)TreeMap
Iterator


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值