Java语法

JAVA复习

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

变量类型 变量 = 初始化值;      ----定义变量

final 变量类型 变量(大写) = 赋值;    ----自定义常量(常量只能赋值一次,变量名一般大写)

System.out.println(a+"b");    ----拼接字符串,当b时空字符时,表示将变量a转换成字符串类型

int b = 100;

Short a = (Short)b;    ----强制类型转换

基本数据类型

  ----基本类型声明之后无论是否赋值都已经分配了内存,修改数据直接对应变量所在内存修改

引用数据类型

  ----引用数据类型声明以后只在栈内分配了内存,初始化在堆或方法区里分配内存,new出来的放在堆里,程序运行常量放在方法区里,

    修改数据时只是修改变量所在内存的地址,将原来的地址改为新数据的地址,原来的数据并没有被修改

static    ----static声明的变量所有对象调用的都一样,可以直接通过类访问

static    ----static声明的静态方法是无法访问非静态变量的,如果要访问,可以指定对象

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

?:语法

max = a > b ? a : b;    ----a和b比较,当a>b为true时max=a,否则max=b;

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

  {}    ----语句块,执行到时从上到下执行,内部定义的变量外部无法访问

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

数组

int[] 数组名 = {1,2,3,4};

int[] 数组名 = new int[50];    ----初始默认值为50个0

String[] 数组名 = new String[3];    ----初始默认值为null,null,null

boolean[] 数组名 = new boolean[3];    ----初始默认值为false,false,false

int[][] 数组名 = {{0,0},{0,0},{0,0}};    ----定义多维数组

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

循环

while(循环条件){

...

}    ----while循环

do{

...

}while(循环条件)    ----do while循环

for(int i=0;i<10;i++){

...

}    ----for循环

continue    ----跳过当前继续下一个(如if(a==4){continue;)这种就是跳过4到5继续运行)

break    ----跳出当前循环或者跳出case

return    ----结束当前方法


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

类名 对象名 = new 类名();    ----声明对象

对象名.方法();    ----对象调用方法

对象名.属性;    ----对象属性

 this.    ----this指当前对象调用

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

构造方法

class 类名{

  public 类名(){

    ...

  };

  public 类名(数据类型 变量名){

    ...

  }

}    ----在new对象的时候会自动调用方法,带有参数就调用第二个方法,没带就第一个


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

声明关键字 public  protect defailt private
同一个类 可以 可以 可以 可以
同一个包 可以 可以 可以 不行
子父类 可以 可以 不行 不行
不同包 可以 不行 不行 不行

 

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

内部类

public class Outer{

  ...

  public class Inner{

    ...

  }

}

Outer out = new Outer;

Outer.Inner in = out.new Inner();    ----内部类对象要依附外部类对象才能被创建

 

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

抽象类

abstract class A{

  abstract void method(){

    ...

  }

  public void method1(){

    ...

  }

}    ----abstract声明的抽象类无法被实例化,只能被继承,继承的类中要实现所有父类中的抽象方法,子类也可以调用父类的其他方法

 

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

接口与匿名内部类

interface Demo{

  ...

System.out.println(

  new Demo(){

    ...    ----接口方法实现

  }.方法调用

);    ----通过接口使用匿名内部类

 

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

集合类

Collection(存储单个值)   

List    ----可重复,有序

  ArrayList a1 = new ArrayList();

  LinkedList li1 = new LinkedList();

  Vector v1 = new Vector();

Set    ---不可重复,无序

  HashSet h1 = new HashSet();

  TreeSet t1 = new TreeSet();

Map(用来储存键值对)    

  HashMap h2 = new HashMap();

  TreeMap t2 = new TreeMap();

  HashTable h3 = new HashTable();


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

字节复制和通过数组复制

int i = -1;

while((i=scoure.read())!=-1){

  target.write(i);

}    ----一个字节一个字节复制

 

byte[] cp = new byte[1024];

int length = -1;

while((length=scoure.read(byte)!=-1){

  target.write(cp,0,length);    

}    ----读取一段数组,复制一段数组,再读取再复制

 

FileInputStream    ----字节输入流,不经过缓冲区读取文件,比较耗费性能

FileOutputStream    ----字节输出流,不经过缓冲区输出

InputStreamReader    ----字符输入流

  Filereader

OutputStreamWriter    ----字符输出流

  FileWriter

 

缓冲区输出流

BufferedInputStream

BufferedOutputStream    ----(字节流)write方法写入的数据会先存放在缓冲区,等缓冲区存放到容量上限后再写入硬盘,也可以提前调用flush方法提前写入,在调用close方法前也会先将缓冲区的数据存入硬盘,要通过FileOutputStream指定文件的写入地址

BufferedWriter    ----(字符流)也要要通过FileWrite指定写入的文件地址

BufferedReader    

    readLine()    ----读取一行

 

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

线程

Runnable r = new Runnable(){

  public void run(){

    Thread.currentThread.method();

    ...

  }

};    ----匿名内部类Runnable的使用

Thread t = new Thread( r,"rename" );    ----通过Runnable实例化线程对象

 

 

Thread t = new Thread(){

  public void run() {

    Thread.currentThread.method();

  }

};    ----匿名内部类Thread的使用

 

线程安全

Object lock = new Object();

public void run(){

  ...

  synchronized(lock){

    ...

  }

}    ----利用线程锁保证线程安全运行

 


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

网络编程

UDP

TCP

 

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

枚举

新建枚举

public enum Season{

  Spring , Summer , Autumn , Winter ;    ----各个值的名字

}

for(Season se : Season.velues()){

  System.out.println(se);

}    ----遍历枚举的值

 

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

 JDBC

Connection con  = DriverManager.getConnection(url,user,password);  ----连接数据库

PreparedStatement pstmt = con.prepareStatement(sql语句);  ----数据库操作

con.setAutoCommit;    ----开启事务

con.commit;    ----提交事务

原文地址:https://www.cnblogs.com/mengxinteriri/p/10876149.html