java基础知识

1.java线程状态操作
(1)sleep() & interrupt()
线程A正在使用sleep()暂停着: Thread.sleep(100000);
在正在执行的线程里(比如这里是B)调用
a.interrupt();
令线程A放弃睡眠操作。
执行interrupt()时,并不需要获取Thread实例的锁定.当sleep中的线程被调用interrupt()时,就会放弃暂停的状态.并抛出
InterruptedException.丢出异常的,是A线程.
(2)wait() & interrupt()
线程A调用了wait()进入了等待状态,也可以用interrupt()取消.
不过这时候要小心锁定的问题.线程在进入等待区,会把锁定解除,当对等待中的线程调用interrupt()时(注意是等待的线程调用
其自己的interrupt()),会先重新获取锁定,再抛出异常.在获取锁定之前,是无法抛出异常的.
(3)join() & interrupt()
当线程以join()等待其他线程结束时,一样可以使用interrupt()取消之.因为调用join()不需要获取锁定,故与sleep()时一样,会
马上跳到catch块里. 阻塞的线程来调用其自己的interrupt方法.如在线程a中调用来线程t.join().则a会等t执行完后在执行
t.join后的代码,当在线程b中调用来a.interrupt()方法,则会抛出InterruptedException

1.char类型
System.out.println()打印字符串;
字符型是一种表示字符的数据类型。char型表示一个字符,16位,占用2个字节。一个char型数值只用来表示一个字符的,用“ ’ ”单引号来表示。例如下面的例子。
//表示一个字符
char c1 = ‘c’;
//表示一个unicode码
char c2 = ‘\u005E’;
//表示一个整数
char c3 = 56;
2.bool类型
在Java中用ture与false,表
示真与假。例如下面的例子。
boolean b1 = false;
boolean b2 = true;
在Java中整数类型包括:byte、char、short、
int型。
3.this
this是Java保留的一个关键字,表示自己、本身的意思,类的本身。
包是一个存放东西的空间,使用包是为了更好地将代码进行分别管理。
创建包时有几个注意事项:
package为Java保留的关键字,不能使用别的符号进行代替。
package语句必须在第一行。
package语句只能有一个,不能有多个。
如果包有多层的话用句点”.”分隔
4.变量修饰
(1)静态变量
所谓静态引入就是引入包中的静态成员变量和静态方法。静态引入的关键字为static,
的其他内容将将在后面的小结进行讲解。静态引入的语法为:
import static 包名.aaa.*;
import static 包名.aaa.方法名称;
静态方法是不能重写的 。静态方法就是被修饰为了static类型的方法,如果在类里声明具有唯一性,不是通过类的实例化而存在的,而是通过类的建立而存在。
(2)public和默认访问级别
用public修饰符修饰该类,表示该类在任何包中的任何类都能访问该类。但要注意不同包的问题。
默认的访问级别不能访问不同包下的类。只能访问同包下的类。默认的访问级别不需要在类前面加任何修饰符。
(3)final修饰
final关键字修饰成员变量,其值是不能改变的。必须进行初始化。在一般情况下创建对象的时候,系统都对其成员变量进行默认
初始化,被final关键字修饰的成员变量是不会被初始化的。当final修饰基本类型的成员变量的时候,其值是不能
改变的,也就是人们常说的常量。而对象类型的成员变量是指其引用不能改变。
final关键字修饰的局部变量和成员变量很相似,都是使其值不能被修改。但是被修饰的局部变量一旦被赋值后就不能
进行修改了。如果在创建的时候没有对其赋值,那么在使用前还是可以对其赋值的。被修饰的方法能被该类的子类所继承,但不能重写了。这样保护了父类某些特殊的数据。
final关键字修饰类时,说明其类不能有子类,也就是说该类不能被继承,该类的成员变量在这里将不起作用。
final关键字修饰方法时,说明该方法不能被重写,因为类都不能继承了,方法就更不能重写了。
类里可以含有final关键字修饰的方法。
final关键字修饰的成员变量的对象引用不能修改。
final关键字修饰的类里的方法默认被修饰为final。
5.反射机制就是起到放大镜的效果,可以通过类名,加载这个类,显示出这个类的方法等信息。
6.接口
接口就是一个完成某些特定功能的类。在日常生活中就好比
一个产品的说明书,通过阅读说明书可以让消费者更多地了解产
品的功能以及使用中的注意事项。在Java中也是如此,接口是一
个功能的集合
interface是定义接口的关键字。
接口里的成员变量默认为public static final类型的
接口不能声明为final的,因为final类型的必须要实现。
在接口里定义的成员变量为常量,是因为接口为每个成员变量默
认的修饰是public static final类型的,即便不显式的修饰也默认的加上了。
//创建一个包,名字为a
package a;
//创建一个接口名字为aaa
public interface aaa
{
  int i = 2;
}
import a.aaa;
//test类描述的是访问接口的常量
public class test 
{
  //Java程序的主入口方法
  public static void main(String[] args)
  {  
    //取得接口里的值
    int n = aaa.i + 1;
    //打印并显示结果
    System.out.println(n);
  }
}
抽象类里有抽象的方法和普通的方法,而接口里方法全为抽象的,需要在其子类进行具体的方法实
现。类就是一个产品的详细功能说明,而接口就是这些功能的简要说明。
接口里的方法默认被修饰为public、abstract类型。
类里的方法如果修饰为abstract类型,将提示错误。
接口里的方法不能是static、final类型,只能为public、abstract类型。
类里的方法不能为final、abstract类型。
//test类描述的是实现接口的方法
public class test implements aaa
7.instanceof一般使用于多态的时候,在代码中判断对象的引用类
型具体为哪一种类型。根据不同的对象类型来执行不同对象中的
方法。
8.异常
try
{
 //此处是可能出现异常的代码
}
catch(Exception e)
{
//此处是如果发生异常处理的代码
}
在try语句中放可能出现异常的代码;在catch语句中需要给出一个异常的类型和该类型的引用,并在catch语句中放当出现该异常类
型时需要执行的代码。
在程序中如果不使用try-catch语句,则当程序发生异常的时候,会自动退出程序的运行。而使用try-catch语句后,当程序发生
异常的时候,会进行执行catch语句中的程序,从而使程序不自动退出。
在finally语句中就是放肯定会被执行的语句。可能会中断finally语句执行的情况。首先是finally语句中本身就产生异常;再者
就是执行finally语句的线程死亡,线程的问题会在后面的学习中学习到;还有一种 情况,那就是程序执行到finally语句时停电了。
第一个注意点就是当不存在catch语句时,finally语句必须存在并且紧跟在try语句后面。在try语句和catch语句间不能存在任何语句
,同样在catch语句和finally语句中也不能存在任何语句,这地方的语句不包括注释语句。
在Exception类中的直接和间接子类中除去RuntimeException类的直接和间接子类,都是捕获异常。其他的都为未捕获异常。
捕获异常通常是由外部因素造成的,不是由程序造成的。如果语句中不可能出现捕获异常,但是程序中仍然对该语句进行捕获异常处理,
这样该程序运行时是会发生错误的。Error类以及它的子类通常是由硬件运行错误所导致的错误。这些是很严重的错误,通常是不能通过
程序来进行修改的。RuntimeException类以及它的子类通常是程序运行时引起的异常。
对异常的处理不是只有前面讲的使用try-catch语句来进行处理的。在有些情况下,异常是不需要立即进行处理的,但是也必须要进行异
常处理,这时候就用到抛出异常的内容。
抛出异常:当一个程序段发生异常时,如果自己不能够进行异常处理,就可以将抛出异常给上一层。如果上一层也不能解决就可以一直向
上抛出异常,直到抛出给main方法。如果仍然不能解决,就会中断程序,将异常显示出来。
9.输入输出流
管道通常是可以双向流通的,Java中的流也是这样的,有输出流和输入流。
Java中的数据流分为2种,一种是字节流,另一种是字符流。这两种流主要由4个抽象类来表示:InputStream,OutputStream,Reader,
Writer,输入输出各两种。其中InputStream和OutputStream表示字节流,Reader和Writer表示字符流,其他各种的流均是继承这4个抽
象类而来的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值