java语法学习总结

这个学期开的安卓课 所以还是自学了java


下面是自己的总结 基本是和自己以前学过的语言做比较 (c c++)


 System.out.println("hello wolrd");输出
int a=System.in.read(); 输入


数组的表示 


int []num={1,2,3,4,5};
int []x=new int[100];
int []x=new int[]{1,2,3,4,5};
int[] a;  
a=new int[5];    //正确,同(2)一样


int []x=new int[5]{1,2,3,4,5};//错误,如果提供了数组初始化操作,则不能定义维表达式 貌似c#可以


int[5];不能指定长度 编译时会出错 c、c++ 可以定义 




*****java也可以 int abc[]=new int[5];   于c c++类似 ******


String 字符串类
比较的eg. 
String str1=new String("abc");
str1.equals(str2); //c++ ansi strcmp unicode wcscmp


*********面向对象************


有构造函数 无返回(带形参) 支持重载 


没有析构函数  finalize()类似
System.gc  通知他垃圾回收 


规定 只能有一个public 去修饰 


也是有static  


内部类 
1:类包含的一个类
2:外部应用内部类  
Outer outer=new Outer();
OutClass.NeiClass inner=outer.new NeiClass(); 同时可以嵌套类 




同时也支持“单”继承


用法  class Student extends Person  
只支持单继承 
当子类实例的时候,在子类构造的函数 应该用super关键字
public Student()
{
   super(x,y);
}
*如果有this(x,y)调用 则调用相应的重载构造方法


子类和父类之间的同名函数 、java是直接覆盖 (c++是加关键字 virtual )
也可以
--子类
fun(){
   xxx
   super.FuFun();
}


----------
final关键字可以修饰类,属性和方法时
final标记的类不能被继承
final标记的方法不能被子类重写
final标记的变量()既成为产量 只能赋值一次(要么在定义 要么在构造函数中)


抽象类
abstract 只要有一个方法是抽象的 这个类必须是抽象类
抽象类不能被实例化 
父类只需声明 无需实现 
子类去实现 覆盖父类的方法才能被实例化 否则子类都是抽象类


interface A
{
   
}
用extends 关键字去继承已有的接口
用implements 关键字实现一个接口的所以方法,我们还需要去定义一个抽象类用
implements关键字去实现一个接口中定义的部分方法


try
catch




***线程***
java运行至少两个线程 一个是main 一个是垃圾回收 
java实现多线程有两种手段 第一是继承Thread类 第二是实现Runnable接口
eg1.  MyThread t=new MyThread(); t.start(); 继承 覆盖run方法 实现线程
eg2.  MyRunnable run=new MyRunnable(); new Thread(run); 一样覆盖run方法 
1: 只要有一个前台线程在运行 程序还是不会退出(经过main函数执行结束)
2: 创建后台线程 new thread().setDeamon(true); new thread().start();
3: 合并加入线程 th.join();  执行之后合并到主线程中了    使用try th.join(); catch


关于java的线程同步 
String str= new String("");
run
synchronised(str)
{
保护同步
}
也可以用在函数定义上 public synchronised void sale();


1.5新特征
import static java.lan.Max.*  静态导入 可以省略类名 调用 比如abs(x,x)
可变参数
int add(int x,int ...args)
{
 int sum=x;
  for(int i=0;i<args.length;i++)
     sum+=args[i];


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值