• 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;    ----提交事务

  • 相关阅读:
    SQL 实现月度留存率/复购率
    Mac安装mysql数据库,并用navicat链接
    MAC电脑安装git
    form 表格提交
    幼稚从来都是相对的
    Vue 80端口无法使用,直接运行到1024问题
    iOS SDK framework 真机和模拟器合并步骤
    XCODE调试
    UN: Half of Refugee Children Do Not Go to School
    Vue界面传值逻辑
  • 原文地址:https://www.cnblogs.com/mengxinteriri/p/10876149.html
Copyright © 2020-2023  润新知