JAVA自學(xué)備忘

/**

  • Created by s on 17/2/20.
    */
1. 對(duì)于所有的類來說,類名的首字母應(yīng)該大寫
2.創(chuàng)建第一個(gè)java對(duì)象
public class Puppy {
    
  public  Puppy(String name){
            
    System.out.print("小狗的名字是 " + name);
 /*加號(hào)+必須是英文狀態(tài)下的,不然會(huì)和中文狀態(tài)下的分號(hào)一樣會(huì)報(bào)錯(cuò)*/
   
 }
 
    
public  static  void main(String []args){
        
  //創(chuàng)建一個(gè)新的Puppy對(duì)象
          
  Puppy myPuppy = new Puppy("tommy\n");
     
 }

}
3.對(duì)小貓puppy的調(diào)查
public class Puppy{
   
  int puppyAge;
    
  public Puppy(String name){
        
    System.out.println("小狗的名字是" + name);
   
  }

    
  public void setAge(int age){
        
    puppyAge = age;
    
  }
    
  //getAge得到的值是一個(gè)整形變量,有返回值,所以需要用int
        
  public  /*void*/int getAge(){
        
    System.out.println("小狗的年齡為 " + puppyAge);
       
    return puppyAge;
    
  }

    
  public static void main(String []args){
        
    Puppy myPuppy = new Puppy("tommy");
        
    myPuppy.setAge(2);
        
    myPuppy.getAge();
        
    System.out.println("變量值 : " + myPuppy.puppyAge);
   
  }

}
4.實(shí)現(xiàn)對(duì)this的引用

public class ReturnThis {
    //定義一個(gè)局部變量age
    
    int age;
    
    ReturnThis grow(){
        
        age++;
        
        return this;
    
    }
    
    public static void main(String []args){
        
        ReturnThis rt = new ReturnThis();
        
        rt.grow()
                
          .grow()
               
          .grow();
        
    System.out.println("rt的age成員變量值是 :" + rt.age);
    
  }

}

編譯結(jié)果為: rt的age成員變量值是  : 3
由此可見對(duì)于this引用是可以作為返回值返回的,它的返回值是rt引用的grow個(gè)數(shù)
5.員工的收入情況
1、創(chuàng)建員工的一個(gè)類
import java.io.*;

public class Employee {
    
  String name;
     
  int age;
    
  String designation;
    
  double salary;
    
  // Employee 類的構(gòu)造器
    
  public Employee(String name){
        
    this.name = name;
   
   }
   
   // 設(shè)置age的值
   
  public void empAge(int empAge){
        
      age =  empAge;
   
   }
    
   /* 設(shè)置designation的值*/
   
  public void empDesignation(String empDesig){
        
      designation = empDesig;
    
   }
   
   /* 設(shè)置salary的值*/
    
  public void empSalary(double empSalary){
        
      salary = empSalary;
   
   }
    
   /* 打印信息 */
   
   public void printEmployee(){
        
      System.out.println("名字:"+ name );
        
      System.out.println("年齡:" + age );
        
      System.out.println("職位:" + designation );
                   
      System.out.println("薪水:" + salary);
    
   }

}

2、引出一個(gè)實(shí)例


import java.io.*;

public class EmployeeTest {
    
  public static void main(String args[]){
        
    /* 使用構(gòu)造器創(chuàng)建兩個(gè)對(duì)象 */
        
    Employee empOne = new Employee("RUNOOB1");
       
    Employee empTwo = new Employee("RUNOOB2");

        
    // 調(diào)用這兩個(gè)對(duì)象的成員方法
        
    empOne.empAge(26);
        
    empOne.empDesignation("高級(jí)程序員");
   
    empOne.empSalary(1000);
        
    empOne.printEmployee();

        
    empTwo.empAge(21);
        
    empTwo.empDesignation("菜鳥程序員");
  
    empTwo.empSalary(500);
        
    empTwo.printEmployee();
    
  }

}

3、通過javac EmployeeTest.java —> java EmployeeTest
可以得到:
  1. 名字:RUNOOB1
  2. 年齡:26
  3. 職位:高級(jí)程序員
  4. 薪水:1000.0
  5. 名字:RUNOOB2
  6. 年齡:21
  7. 職位:菜鳥程序員
  8. 薪水:500.0
至此即實(shí)現(xiàn)了對(duì)兩個(gè)對(duì)象的調(diào)用

2017/2/21

1. 學(xué)習(xí)私有變量private

public class InstanceCounter {

    //定義一個(gè)私有變量numInstance
    private static int numInstances = 0;

    //由于numInstance是私有變量,所以需要通過getCount來調(diào)用
    protected static int getCount() {
        return numInstances;
    }

    private static void addInstance() {
        numInstances++;
    }

    InstanceCounter() {
        InstanceCounter.addInstance();
    }

    public static void main(String[] arguments) {
        System.out.println("Starting with " + InstanceCounter.getCount() + " instances");
        for (int i = 0; i < 500; ++i){
            new InstanceCounter();
        }
        System.out.println("Created " + InstanceCounter.getCount() + " instances");
    }
}
輸出結(jié)果是:
Starting with 0 instances
Created 500 instances

2. for循環(huán)的應(yīng)用

public class Test {
   public static void main(String args[]){
      //定義一個(gè)數(shù)組,可以觀察到方括號(hào)寫的位置是可以隨意的,比如 [ ]args
      int [] numbers = {10, 20, 30, 40, 50};
    
      //這里引用了數(shù)組的增強(qiáng)型for循環(huán),即x的類型應(yīng)和數(shù)組里的數(shù)據(jù)類型一致,并且每次x等于該數(shù)組的一個(gè)元素
      for(int x : numbers ){
         System.out.print( x );
         System.out.print(",");
      }
      System.out.print("\n");
      String [] names ={"James", "Larry", "Tom", "Lacy"};

      //這里也是利用了增強(qiáng)型for循環(huán)
      for( String name : names ) {
         System.out.print( name );
         System.out.print(",");
      }

      //我覺得輸出結(jié)果不好看,就加了這句
      System.out.print("\n");
   }
}
輸出結(jié)果為:
10,20,30,40,50,
James,Larry,Tom,Lacy,

3. break的應(yīng)用

public class Test {
   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};
 
      //增強(qiáng)型for循環(huán)
      for(int x : numbers ) {
         // x 等于 30 時(shí)跳出循環(huán)
         if( x == 30 ) {
            break;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}
輸出結(jié)果為:
10
20

4.所有的包裝類(Integer、Long、Byte、Double、Float、Short)都是抽象類 Number 的子類。

5. Java StringBuffer 和 StringBuilder 類

public class Test{
    public static void main(String args[]){
        StringBuffer sBuffer  =  new StringBuffer("菜鳥教程官網(wǎng):");
        sBuffer.append("www");
        sBuffer.append(".runoob");
        sBuffer.append(".com");
        System.out.println(sBuffer);
    }
}
輸出結(jié)果為:
菜鳥教程官網(wǎng):www.runoob.com

6. 數(shù)組的應(yīng)用

public class TestArray {
   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};
 
      // 打印所有數(shù)組元素
      for (int i = 0; i < myList.length; i++) {
         System.out.println(myList[i] + " ");
      }
      // 計(jì)算所有元素的總和
      double total = 0;
      for (int i = 0; i < myList.length; i++) {
         total += myList[i];
      }
      System.out.println("Total is " + total);
      // 查找最大元素
      double max = myList[0];
      for (int i = 1; i < myList.length; i++) {
         if (myList[i] > max) max = myList[i];
      }
      System.out.println("Max is " + max);
   }
}
輸出的結(jié)果是:
1.9 
2.9 
3.4 
3.5 
Total is 11.7
Max is 3.5

7. *獲取當(dāng)前時(shí)期,在簡詩上可以用到

import java.util.*;
import java.text.*;
 
public class DateDemo {
   public static void main(String args[]) {
 
      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
 
      System.out.println("Current Date: " + ft.format(dNow));
   }
}
####這個(gè)獲取的信息比較多
import java.util.Date;
  
public class DateDemo {

   public static void main(String args[]) {
       // 初始化 Date 對(duì)象
       Date date = new Date();
        
       // 使用toString()顯示日期和時(shí)間
       System.out.printf("%1$s %2$tB %2$td, %2$tY", 
                         "Due date:", date);
   }
}
####這個(gè)獲取的只有日期

8. 用cat替換句子中所有的dog

import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class RegexMatches
{
    private static String REGEX = "dog";
    private static String INPUT = "The dog says meow. " +
                                    "All dogs say meow.";
    private static String REPLACE = "cat";
 
    public static void main(String[] args) {
       Pattern p = Pattern.compile(REGEX);
       // get a matcher object
       Matcher m = p.matcher(INPUT); 
       INPUT = m.replaceAll(REPLACE);
       System.out.println(INPUT);
   }
}
輸出結(jié)果為:
The cat says meow. All cats say meow.

2017/2/22

1.

public class Varargs {
    //String...books類似于String [] books
    public static void test(int a, String...books){
        //增強(qiáng)型for循環(huán),類似于數(shù)組,將books里的元素一個(gè)個(gè)都打印出來
        for (String tmp : books){
            //tmp只是代表一個(gè)臨時(shí)變量
            System.out.println(tmp);
        }
        System.out.println(a);
    }

    public static void main(String []args){
        test(5, "瘋狂java講義", "輕量級(jí)java ee 企業(yè)應(yīng)用實(shí)戰(zhàn)");
    }
}

輸出結(jié)果為:

瘋狂java講義
輕量級(jí)java ee 企業(yè)應(yīng)用實(shí)戰(zhàn)
5

2. 遞歸的運(yùn)用

####假設(shè)fn(0)=1;fn(1)=4;fn(n+2)=fn(n+1)+fn(n);求fn(10)
public class Test{
    public static int fn(int n){
        if(n == 0){
            return 1;
        }
        else if(n == 1){
            return 4;
        }
        else{
            //遞歸調(diào)用它本身
            return 2*fn(n-1)+fn(n-2);
        }
    }
    public static void main(String []args){
        System.out.println(fn(10));
    }
}

輸出結(jié)果為:

10497

3. 為了避免不同公司之間類名的重復(fù);Oracle建議使用公司Internet域名倒寫來作為包名

2017/2/23

1.

public class VariableOverrideTest {
    //設(shè)置兩個(gè)變量 name,price并隱藏起來
    private String name = "李剛";
    private static double price = 78.0;

    public static void main(String[] args) {
        int price = 65;
        System.out.println(price);
        System.out.println(VariableOverrideTest.price);
        new VariableOverrideTest().info();
    }

    public void info() {
        String name = "孫悟空";
        System.out.println(name);
        System.out.println(this.name);
    }
}

輸出結(jié)果為:

65
78.0
孫悟空
李剛

2. 運(yùn)用 this 方法

//定義一個(gè)Person類
public class Test{
    //設(shè)置兩個(gè)私有變量,只能用setter,getter來調(diào)用
    private String name = "李白";
    private int age = 18;

    public void setName(String name){
        if(name.length() < 2 || name.length() >7){
            return ;
        }
        else{
            this.name = name;
        }
    }

    public /*void*/String getName(){
        return this.name;
    }

    public void setAge(int age){
        if(age >100 || age <0){
            return;
        }
        else{
            this.age = age;
        }
    }

    public /*void*/int getAge(){
        return this.age;
    }

}

主函數(shù)為

public class TestReturn {
    public static void main(String []args){
        Test t = new Test();
        t.setAge(1000);
        System.out.println("未能設(shè)置age成員變量時(shí) " + t.getAge());
        t.setAge(30);
        System.out.println("成功設(shè)置age成員變量時(shí) " + t.getAge());
        t.setName("李白");
        System.out.println("成功設(shè)置name成員變量時(shí) " + t.getName());
    }
}

輸出的結(jié)果是:

未能設(shè)置age成員變量時(shí) 18
成功設(shè)置age成員變量時(shí) 30
成功設(shè)置name成員變量時(shí) 李白

2017/2/26

1.在包中創(chuàng)建一個(gè)單鏈表,包名為linkedlist;

實(shí)現(xiàn)單鏈表的插入,刪除,與遍歷輸出的功能

#### LinkedListTest.java

public class LinkedListTest{

    public static void main(String [] args) {
        //創(chuàng)建一個(gè)引用變量 linkedlist
        LinkedList linkedList = new LinkedList();

        //實(shí)現(xiàn)單鏈表中各個(gè)結(jié)點(diǎn)的值的插入
        linkedList.add(10);
        linkedList.add(20);
        linkedList.add(30);
        linkedList.add(40);
        linkedList.add(50);

        //實(shí)現(xiàn)對(duì)指定位置的結(jié)點(diǎn)的插入
        linkedList.add(0,60);

        //遍歷輸出改鏈表的所有結(jié)點(diǎn)的值
        linkedList.print();

        System.out.print("index=0: " + linkedList.get(0) + ", index=1: " + linkedList.get(1) + ", index=2: " + linkedList.get(2) + "\n");

        //刪除第五個(gè)結(jié)點(diǎn)
        linkedList.remove(4);

        System.out.print("index=0: " + linkedList.get(0) + ", index=1: " + linkedList.get(1)  + ", index=2: " + linkedList.get(2)  + ", index=3: " + linkedList.get(3) + ", index=4: " + linkedList.get(4) +"\n" );

    }

}
#### LinkedList.java
#### 定義所需要用到的類

package linkedlist;
public class LinkedList{

    //定義它的頭結(jié)點(diǎn)
    private Node head;

    //增加一個(gè)新的結(jié)點(diǎn)
    public void add(int value) {
        Node node = new Node(value);

        if (head == null) {
            head = node;
        } 
        else {
            Node current = head;
            while (current.next != null) {
                current = current.next;
            }
            current.next = node;
        }
    }

    //在指定下標(biāo)的后面增加一個(gè)結(jié)點(diǎn)
    public void add(int index,int value){
        if(index == 0 ){
            Node newNode = new Node(value);
            newNode.next = head;
            head = newNode;
        }
        else{
            Node current = head;
            while(index > 0){
                index--;
                current = current.next;
            }
            Node newNode = new Node(value);
             newNode.next = current.next;
            current.next=newNode;
        }
    }

    //獲得給定下標(biāo)的結(jié)點(diǎn)的值
    public int get(int index) {
        // index 在合理范圍內(nèi)
        if (index == 0) {
            if (head == null) {
                return -100000;
            }
            return head.value;
        } else {
            Node current = head;
            while (index > 0) {
                index--;
                current = current.next;
            }
            return current.value;
        }
    }

    public int remove(int index) {
          //index 在合理范圍內(nèi)
          if(index == 0){
            head = head.next;
            return head.value;
          }
          else{
            Node current = head;
            //找到需要?jiǎng)h除的結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn)
            while(index > 1){
                index--;
                current = current.next;
            }
            //刪除該結(jié)點(diǎn)的操作,,即躍過要?jiǎng)h除的結(jié)點(diǎn),直接指向它的下一個(gè)結(jié)點(diǎn),再size--,即刪除該結(jié)點(diǎn)了
            current.setNext(current.next.next);
            return current.value;
          }
    }

    public void print(){
        Node current =  head;
        while(current != null){
            System.out.println("鏈表的值為:" + current.value);
            current = current.next;
        }
    }

}
#### Node.java
#### 定義結(jié)點(diǎn)的類

package linkedlist;
public class Node {

    public int value;

    public Node next;

    public int size;

    public Node(int value){
        this.value = value;
    }

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public Node getNext() {
        return this.next;
    }

    public void setNext(Node next) {
        this.next = next;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }
}

2017/3/3

自學(xué)MYSQL數(shù)據(jù)庫

  1. 通過使用JDBC,JAVA程序可以非常方便的操作各種主流數(shù)據(jù)庫
  2. JDBC = Java Database connectivity 即Java數(shù)據(jù)庫連接,一種可以執(zhí)行SQL語句的Java API
  3. 具有跨平臺(tái)(即讓相同的程序在不同的平臺(tái)上運(yùn)行)和跨數(shù)據(jù)庫(三大數(shù)據(jù)庫,MYSQL,Oracle,DB2)等特性
  4. 開發(fā)人員面對(duì)JDBC API編寫應(yīng)用程序,然后根據(jù)不同的數(shù)據(jù)庫,使用不同的數(shù)據(jù)庫驅(qū)動(dòng)即可
  5. JDBC驅(qū)動(dòng):純JAVA的,直接與數(shù)據(jù)庫實(shí)例交互,這種驅(qū)動(dòng)是智能的,它知道數(shù)據(jù)庫使用的底層協(xié)議。這種驅(qū)動(dòng)是目前最流行的JDBC驅(qū)動(dòng)
  6. JDBC比ODBC更簡單,更安全。
  7. 每個(gè)重載的方法(或者構(gòu)造函數(shù))都必須有一個(gè)獨(dú)一無二的參數(shù)類型列表。

2017/3/7

Overloading

/**
 * Created by s on 17/3/7.
 */
//每個(gè)重載(Overloading)的方法(或者構(gòu)造函數(shù))都必須有一個(gè)獨(dú)一無二的參數(shù)類型列表。
public class Overloading {
    public int test(){
        System.out.println("test1");
        return 1;
    }

    public void test(int a){
        System.out.println("test2");
    }

    //以下兩個(gè)參數(shù)類型順序不同
    public String test(int a,String s){
        System.out.println("test3");
        return "returntest3";
    }

    public String test(String s,int a){
        System.out.println("test4");
        return "returntest4";
    }

    public static void main(String[] args){
        Overloading o = new Overloading();

        System.out.println(o.test());
        //返回 test1   1

        o.test(1);
        //調(diào)用test(int a)這個(gè)函數(shù),返回 test2

        System.out.println(o.test(1,"test3"));
        //調(diào)用test(String s,int a)這個(gè)函數(shù),返回 test3   returntest3

        System.out.println(o.test("test4",1));
        //調(diào)用test(String s,int a)這個(gè)函數(shù),返回 test4    returntest4
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,816評(píng)論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評(píng)論 19 139
  • 此時(shí),正躺在小鎮(zhèn)去往哈市的綠皮車上,陳年車廂搖搖擺擺的向前延伸,開著的車窗時(shí)不時(shí)的傳來牛屎的清香作為陪伴。 一上火...
    九頭牛閱讀 152評(píng)論 0 0
  • 昨天 北京滿地白雪 令人一看忍不住想多拍幾張照片 但是今天的南京真的是讓你凍到忍不住想罵人 一天的連綿細(xì)雨 滿地濕...
    云子閱讀 140評(píng)論 0 1
  • 每個(gè)生命來到這個(gè)婆娑的世界,都是一種緣!因愛而生,因罪惡而誕…結(jié)緣這個(gè)世界的第一天,開始不可選擇到做種種選擇,經(jīng)歷...
    紅樹林的我閱讀 335評(píng)論 0 0

友情鏈接更多精彩內(nèi)容