java基礎1.5版後新特性 自動裝箱拆箱 Date SimpleDateFormat Calendar.getInstance()獲得一個日曆對象 抽象不要生成對象 get set add System.arrayCopy()用於集合等的擴容

来源:https://www.cnblogs.com/qingyundian/archive/2018/02/25/8470124.html
-Advertisement-
Play Games

8種基本數據類型的8種包裝類 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean Integer a=127; Integer b=127;//虛擬機 ...


 8種基本數據類型的8種包裝類

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

boolean Boolean

Integer a=127; Integer b=127;//虛擬機自動裝箱時進行了特殊處理,-127~128以下的自動取有過的

System.out.println(a==b);結果為true

如果是Integer a=128; Integer b=128;

System.out.println(a==b);結果為false

System.out.println(a.equals(b)); 比較的都為內容,因覆寫過equals結果為true

 

日期類的練習

package com.swift.day06;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

/*需求:
1.使用代碼完成:獲取系統的當前時間並輸出,輸出格式:2017年11月24日
2.使用代碼完成:獲取鍵盤錄入的時間轉換成Date對象並輸出,錄入格式:2017年11月24日,如格式不正確需提示日期格式異常並列印異常信息
3.使用代碼完成:使用Calendar類獲取系統的當前日期並輸出,輸出格式:2017年11月24日
4.使用代碼完成:遍曆數字1-10,當遍歷到5時結束java程式*/

public class Demo1 {
    
    public static void main(String[] args) {
        //Date類格式轉換
        Date date=new Date();
        System.out.println(date);
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日");
        String str=sdf.format(date);
        System.out.println(str);
        //鍵盤字元串轉日期
        Scanner scan=new Scanner(System.in);
        System.out.println("請輸入一個日期");
        String time=scan.nextLine();
        System.out.println(time);
        try {
            Date d=sdf1.parse(time);
            System.out.println(d);
        } catch (ParseException e) {
            System.out.println("日期格式異常啦~~~~~~~");
            e.printStackTrace();
        }
        System.out.println("==========================");
        //日曆類操作
        Calendar c=Calendar.getInstance();
        System.out.println(c);
        Date d1=c.getTime();
        System.out.println(sdf1.format(d1));
        //遍歷到5時結束java程式
        for(int i=0;i<10;i++) {
            if(i==5) {
                System.exit(0);
            }
            System.out.println("i="+i);
        
        }
    }
}

 數學以及裝箱

package com.swift.day06;

import java.util.ArrayList;

/*需求:
1.使用代碼完成:使用Math類,獲取2個隨機數中的最大值
2.使用代碼完成:使用Math類,獲取2個隨機數中的最小值
3.使用代碼完成:使用Math類獲取5個隨機數的平均值,平均值四捨五入
4.寫出8種基本數據類型的包裝類
5.使用代碼完成:將字元串"123"轉換成int類型
6.使用代碼完成:將Long類型的數字10轉換成int類型
7.簡述下什麼是自動裝箱拆箱
8:請闡述你對正則表達式的理解
9.使用代碼完成:校驗qq號碼,其中QQ校驗的正則表達式為:"[1-9][0-9]{4,14}" 表示第一位不為0第二位起都是數字共5到15位
10:使用代碼完成:校驗手機號碼,其中手機號校驗的正則表達式為:"1[34578][0-9]{9}"*/ 

public class Demo2 {

    public static void main(String[] args) {
        
        //Math類
        System.out.println(Math.max(20, 30));
        System.out.println(Math.min(20, 30));
        //Math類獲取5個隨機數的平均值,平均值四捨五入
        double sum=0.0;
        for(int x=0;x<5;x++) {
            
            double ran=Math.random()*10;
            System.out.println(ran);
            sum=sum+ran;
        }
        System.out.println(Math.round(sum/5.0));
        //字元串"123"轉換成int類型
        int a=Integer.parseInt("123");
        System.out.println(a);
        //將Long類型的數字10轉換成int類型
        Long b=new Long(10L);
        System.out.println(b.intValue());
        //什麼是自動裝箱拆箱
        Integer z=5;//本來這個是不合法的,應該是Integer z=new Integer(5);-->稱為自動裝箱
        Integer z1=new Integer(5);//這個是合法的
        Integer y=z+1;//本來這個也是不合法的,這裡z+1進行了拆箱操作,然後又進行了裝箱操作
        ArrayList<Integer> arr=new ArrayList<>();
        arr.add(1);//本來這樣寫也是不合法的,這令經過了自動裝箱操作,合法的應為arr.add(new Integer(1));
        int x=arr.get(0);//本來這裡也是不合法的,這裡經過了自動拆箱操作,把對象new Integer(1)拆箱成了int的1
        //校驗手機號碼
        String phone="138000x23847";
        boolean bool=phone.matches("1[35678]\\d{9}");
        System.out.println(bool);
        
    }
}

活了多少天

package com.swift.day06;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*訓練考核知識點:Date類
訓練描述
   請使用代碼實現:計算你活了多少天

操作步驟描述
在main方法中
    a)把你生日的字元串,轉換為日期對象
    b)把日期對象轉換為對應的毫秒值
    c)獲取當前系統的毫秒值
    d)當前系統毫秒值-出生時間對於的毫秒值計算你活的毫秒值
    e)把你活毫秒值轉換為天
    f)輸出天數
    g)使用try...catch處理異常*/

public class Huojiu {

    public static void main(String[] args) {
        //把你生日的字元串,轉換為日期對象
        String birthday="2017年7月7日";
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
        try {
            Date date=sdf.parse(birthday);
            System.out.println(date);
            long millis=date.getTime();
            System.out.println(millis);
            //獲取當前系統的毫秒值
            long now=System.currentTimeMillis();
            long now1=new Date().getTime();
            System.out.println(now+"~~"+now1);
            //活得毫秒數
            long huo=now-millis;
            System.out.println(huo);
            //活的天數
            System.out.println(huo/1000/60/60/24+"天");
            
        } catch (ParseException e) {
            e.printStackTrace();
        }
        
    }
}

正則判斷用戶名

package com.swift.day06;

import java.util.Scanner;

/*正則表達式

需求:
編寫一個校驗用戶名的程式,檢測鍵盤錄入的用戶名是否合法
     要求:必須以英文開頭,只能包含英文,數字和`_`;最少6位,做多12位,對應的正則表達式:[a-zA-Z]\\w{5,11}*/

public class RegexDemo {
    
    public static void main(String[] args) {
        
        Scanner scan=new Scanner(System.in);
        System.out.println("請輸入一個用戶名");
        String name=scan.nextLine();
        System.out.println(name);
        boolean b=name.matches("[a-zA-Z][a-zA-Z0-9_]{5,11}");
        System.out.println(b);
    }
    
}

500天後是什麼日期

package com.swift.day06;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

//500天後是什麼日期
public class DayAfter500 {
    
    public static void main(String[] args) {
        
        Calendar c=Calendar.getInstance();
        Date date=c.getTime();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        String day=sdf.format(date);
        System.out.println(day);
        c.add(Calendar.DAY_OF_MONTH, 500);
        Date date1=c.getTime();
        String day1=sdf.format(date1);
        System.out.println(day1);
        
    }
}

以上知識點綜合,把複雜字元串匹配成對象,併進行正則判斷

package com.swift.day06;

/*請使用代碼描述
 * 
    有一段文本 "  anglebaby      女      18      515151511  " 
    分別描述一個人的姓名 性別 年齡(int) 和QQ號碼信息,完成如下需求:
    1. 創建一個Person類,包含性別,性別,年齡和QQ號碼屬性,使用解析出來信息創建一個Person對象,並列印這個人信息
    2. 並判斷QQ號是否合法,匹配規則,全部都是數字,第一位非0,長度為5到12位. */

public class Zifuchuan_Parse {
    
    public static void main(String[] args) {
        
        String info="  anglebaby      女      18      515151511  ";
        info=info.trim();
        String[] arr=info.split("\\s+");
        for(String str:arr) {
            System.out.println(str);
        }
        String name=arr[0];
        String sex=arr[1];
        int age=Integer.parseInt(arr[2]);
        String qq=arr[3];
        Person p=new Person(name,sex,age,qq);
        System.out.println(p.toString());
        if(qq.matches("[1-9][0-9]{4,11}")) {
            System.out.println("QQ號碼合法~");
        }
    }
}

class Person{
    
    private String name;
    private String sex;
    private int age;
    private String qq;
    public Person(String name, String sex, int age, String qq) {
        super();
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.qq = qq;
    }
    public Person() {
        super();
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", sex=" + sex + ", age=" + age + ", qq=" + qq + "]";
    }
    
    
    
}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.線程進程進程:程式並不能單獨運行,只有將程式裝載到記憶體中,系統為它分配資源才能運行,而這種執行的程式就稱之為進程,不具備執行感念,只是程式各種資源集合 線程:線程是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一條線程指的是進程中一個單一順序的控制流,一個進程中 ...
  • 實際設置:系統變數新建: PATH新加: 查看是否安裝成功: ...
  • 前言 為了鞏固開發的流程,我們再拿一個客戶關係管理系統來練手...! 成果圖 我們完成的就是下麵的項目! 搭建配置環境 配置Tomcat 導入開發包 建立開發用到的程式包 在資料庫創建相對應的表 開發實體 開發實體十分簡單,對照著資料庫的表就行了! 開發獲取資料庫連接池的Utils 導入配置文件 開 ...
  • PS:本文內容大部分借(chao)鑒(xo)自 "yhqz" 樹的刪邊游戲 給出一個有 N個點的樹,有一個點作為樹的根節點。游戲者輪流從樹中刪去邊,刪去一條邊後,不與根節點相連的部分將被移走。誰無法移動誰輸。 結論 葉子節點的SG值為0;中間節點的SG值為它的所有子節點的SG值加1後的異或和。 證明 ...
  • 本文詳細闡述了大小堆的創建,堆的插入和刪除;為了加深記憶還用堆實現了優先順序隊列問題,topk問題,堆排序問題(包含原理,思路,代碼實現,以及測試用例)。本文在windows平臺下vs2008上採用C語言實現。 ...
  • Python中的類(一) 一、 應用場景 如果多個函數中有一些相同的參數時,轉換成面向對象。 二、 如何創建類 類是用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。 Class 類名: Pass 三、 類變數 類變數在整個實例化的對象中是公用的。 ...
  • Every SG 給定一張無向圖,上面有一些棋子,兩個頂尖聰明的人在做游戲,每人每次必須將可以移動的棋子進行移動,不能移動的人輸 博弈分析 題目中的要求實際是“不論前面輸與否,只要最後一個棋子勝利,那麼就算勝利” 這樣的話,能贏得游戲必須贏 因為兩個人都頂尖聰明,因此當一個人知道某一個游戲一定會輸的 ...
  • Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 805 Accepted Submission(s): 367 Problem Descripti ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...