最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java類(lèi)和對(duì)象全面解析

 更新時(shí)間:2026年05月22日 09:46:08   作者:01_ice  
本文介紹了Java面向?qū)ο缶幊痰暮诵母拍?文章通過(guò)具體代碼示例,幫助讀者理解Java面向?qū)ο缶幊痰幕驹砗蛯?shí)踐方法,感興趣的朋友跟隨小編一起看看吧

1,面向?qū)ο蟮某醪秸J(rèn)識(shí)

Java是??純?向?qū)ο蟮恼Z(yǔ)?(ObjectOrientedProgram,簡(jiǎn)稱(chēng)OOP),在?向?qū)ο蟮氖澜?,?切皆為對(duì)象。?向?qū)ο笫墙鉀Q問(wèn)題的?種思想,主要依靠對(duì)象之間的交互完成?件事情。??向?qū)ο蟮乃枷雭?lái)設(shè)計(jì)程序,更符合?們對(duì)事物的認(rèn)知,對(duì)于?型程序的設(shè)計(jì)、擴(kuò)展以及維護(hù)都?常友好。

相比于面向過(guò)程,面向?qū)ο蟾镁S護(hù)

個(gè)人認(rèn)為面向?qū)ο笫前延嘘P(guān)對(duì)象的所有事物寫(xiě)在類(lèi)里面

2, 類(lèi)

類(lèi)的格式

class ClassName{
    field;//字段(屬性)或者成員變量
    method;// ?為或者成員?法
}

class為類(lèi)定義的關(guān)鍵字,Classname為類(lèi)名,{}里是類(lèi)的主體

類(lèi)中包含的內(nèi)容稱(chēng)為類(lèi)的成員。屬性主要是?來(lái)描述類(lèi)的,稱(chēng)之為類(lèi)的成員屬性或者類(lèi)成員變量。?法主要說(shuō)明類(lèi)具有哪些功能,稱(chēng)為類(lèi)的成員?法

以豌豆射手為例

class PeaShooter {
        //類(lèi)的成員變量
        public int HP;  //生命值
        public int cost;  //費(fèi)用
        public int ATK;   //攻擊
        public double firingInterval; //射擊間隔
        //類(lèi)的成員方法
        public void attackTheZombies() {  //攻擊僵尸
            System.out.println("攻擊僵尸");
        }
}
  • 類(lèi)名采用大駝峰(單詞首字母都大寫(xiě))定義
  • 類(lèi)的成員方法名采用小駝峰(第一個(gè)單詞首字母小寫(xiě),其余首字母大寫(xiě))

注意

  1. 一個(gè)文件當(dāng)中只定義一個(gè)類(lèi)
  2. public修飾的類(lèi)必須要和文件名相同
  3. 不要輕易去修改public修飾的類(lèi)的名稱(chēng),如果要修改,通過(guò)開(kāi)發(fā)?具修改

類(lèi)的實(shí)例化

定義了?個(gè)類(lèi),就相當(dāng)于在計(jì)算機(jī)中定義了?種新的類(lèi)型,?類(lèi)類(lèi)型創(chuàng)建對(duì)象的過(guò)程,稱(chēng)為類(lèi)的實(shí)例化,在java中采?new關(guān)鍵字,配合類(lèi)名來(lái)實(shí)例化對(duì)象。說(shuō)白了就是創(chuàng)建一個(gè)類(lèi)。

public static void main(String[] args) {
        PeaShooter bob = new PeaShooter();
        PeaShooter dave = new PeaShooter();
}

訪(fǎng)問(wèn)對(duì)象中的成員

PeaShooter bob = new PeaShooter();  //new實(shí)例化
bob.HP = 300;
bob.cost = 100;
bob.ATK = 20;
bob.firingInterval = 1.4;
bob.AttackTheZombies();
  • 通過(guò)來(lái)訪(fǎng)問(wèn)對(duì)象中的屬性和?法
  • 同?個(gè)類(lèi)可以創(chuàng)建多個(gè)實(shí)例

3, 對(duì)象

this關(guān)鍵字

為什么要有this引??

如下代碼定義了?個(gè)Date類(lèi),Date類(lèi)中包含3個(gè)屬性分別是year,month,day。分別使?setDay和 printDate對(duì)進(jìn)?設(shè)置和打印?期

public class Date {
        public int year;
        public int month;
        public int day;
        public void setDay(int y, int m, int d){
            year = y;
            month = m;
            day = d;
        }
        public void printDate(){
            System.out.println(year + "/" + month + "/" + day);
        }
        public static void main(String[] args) {
            //構(gòu)造三個(gè)?期類(lèi)型的對(duì)象d1 d2 d3
            Date d1 = new Date();
            Date d2 = new Date();
            Date d3 = new Date();
            //對(duì)d1,d2,d3的?期設(shè)置
            d1.setDay(2026,5,15);
            d2.setDay(2026,5,16);
            d3.setDay(2026,5,17);
            //打印?期中的內(nèi)容
            d1.printDate();
            d2.printDate();
            d3.printDate();
        }
}

如果形參名和成員變量名相同會(huì)發(fā)生什么?

public void setDay(int year, int month, int day){
        year = year;
        month = month;
        day = day;
}

結(jié)果是year = 0,month = 0,day = 0,局部?jī)?yōu)先,所有year = year都是形參,成員變量就會(huì)使用默認(rèn)值0。

三個(gè)對(duì)象都在調(diào)?setDate和printDate函數(shù),但是這兩個(gè)函數(shù)中沒(méi)有任何有關(guān)對(duì)象的說(shuō)明, setDate和printDate函數(shù)如何知道打印的是那個(gè)對(duì)象的數(shù)據(jù)呢?

this引?指向當(dāng)前對(duì)象(成員?法運(yùn)?時(shí)調(diào)?該成員?法的對(duì)象),在成員?法中所有成員變量的操作, 都是通過(guò)該引?去訪(fǎng)問(wèn)。只不過(guò)所有的操作對(duì)??是透明的,即用戶(hù)不需要來(lái)傳遞,編譯器?動(dòng)完成。

public class Date {
    public int year;
    public int month;
    public int day;
    public void setDay(int year, int month, int day){
        this.year = year;
        this.month = month;
        this.day = day;
    }
    public void printDate(){
        System.out.println(this.year + "/" + this.month + "/" + this.day);
    }
    public static void main(String[] args) {
        Date d = new Date();
        d.setDay(2026,5,19);
        d.printDate();
    }
}

this引用當(dāng)前對(duì)象d

this引用的特性

  • this的類(lèi)型:對(duì)應(yīng)類(lèi)類(lèi)型引?,即哪個(gè)對(duì)象調(diào)?就是哪個(gè)對(duì)象的引?類(lèi)型
  • this只能在"成員?法"中使?
  • 在"成員?法"中,this只能引?當(dāng)前對(duì)象,不能再引?其他對(duì)象
  • this是“成員?法”第?個(gè)隱藏的參數(shù),編譯器會(huì)?動(dòng)傳遞,在成員?法執(zhí)?時(shí),編譯器會(huì)負(fù)責(zé)將調(diào)?成員?法對(duì)象的引?傳遞給該成員?法,this負(fù)責(zé)來(lái)接收
public void setDay(Date this,int year, int month, int day){
        this.year = year;
        this.month = month;
        this.day = day;
    }
public void printDate(Date this){
        System.out.println(this.year + "/" + this.month + "/" + this.day);
}

形參里面的this一般是隱藏的

對(duì)象的構(gòu)造及初始化

在Java?法內(nèi)部定義?個(gè)局部變量時(shí),必須要初始化,否則會(huì)編譯失敗,那么類(lèi)對(duì)象怎樣初始化呢?

1.用方法傳值

public static void main(String[] args) {
    Date d = new Date();
    d.printDate();
    d.setDate(2026,5,20);
    d.printDate();
}

每次對(duì)象創(chuàng)建好后調(diào)?SetDate?法設(shè)置具體?期,比較麻煩,那對(duì)象該如何初始化?

局部變量必須要初始化才能使?,為什么字段聲明之后沒(méi)有給值依然可以使??

默認(rèn)初始化

對(duì)于成員變量來(lái)說(shuō),如果沒(méi)有進(jìn)?初始化,會(huì)有?個(gè)對(duì)應(yīng)的默認(rèn)值

類(lèi)型

默認(rèn)值

byte0
short0
int0
long0
float0.0f
double0.0
char/u0000
booleanfalse
referencenull

缺省參數(shù)(默認(rèn)值)初始化

public class Date {
    public int year = 1900;
    public int month = 1;
    public int day = 1;
    public Date(){
    }
    public Date(int year, int month, int day) {
    }
    public static void main(String[] args) {
        Date d1 = new Date(2026,5,20);
        Date d2 = new Date();
    }
}

沒(méi)有傳參數(shù)的就用上面的默認(rèn)值初始化

構(gòu)造方法初始化

構(gòu)造?法(也稱(chēng)為構(gòu)造器)是?個(gè)特殊的成員?法,名字必須與類(lèi)名相同,在創(chuàng)建對(duì)象時(shí),由編譯器?動(dòng)調(diào)?,并且在整個(gè)對(duì)象的?命周期內(nèi)只調(diào)??次。

public class Date {
    public int year;
    public int month;
    public int day;
    public Date(int year, int month, int day){
        this.year = year;
        this.month = month;
        this.day = day;
        System.out.println("Date(int,int,int)?法被調(diào)?了 ");
    }
    public void printDate(Date this){
        System.out.println(this.year + "/" + this.month + "/" + this.day);
    }
    public static void main(String[] args) {
        //此處創(chuàng)建了?個(gè)Date類(lèi)型的對(duì)象,并沒(méi)有顯式調(diào)?構(gòu)造?法
        Date d = new Date(2026,5,20);   //輸出Date(int,int,int)?法被調(diào)?了
        d.printDate();    // 2026/5/20
    }
}

注意事項(xiàng):

  1. 名字必須和類(lèi)名相同
  2. 沒(méi)有返回值類(lèi)型,設(shè)置為void也不?
  3. 創(chuàng)建對(duì)象時(shí)由編譯器?動(dòng)調(diào)?,并且在對(duì)象的?命周期內(nèi)只調(diào)??次(相當(dāng)于?的出?,每個(gè)?只能出??次)
  4. 構(gòu)造?法可以重載(用戶(hù)根據(jù)??的需求提供不同參數(shù)的構(gòu)造?法)

根據(jù)參數(shù)不同調(diào)用不同的構(gòu)造(如果有的話(huà))

public class Date {
    public int year;
    public int month;
    public int day;
    public Date() {
        this.year = 2026;
        this.month = 1;
        this.day = 1;
        System.out.println("Date()?法被調(diào)?了 ");
    }
    public Date(int year, int month, int day){
        this.year = year;
        this.month = month;
        this.day = day;
        System.out.println("Date(int,int,int)?法被調(diào)?了 ");
    }
    public void printDate(Date this){
        System.out.println(this.year + "/" + this.month + "/" + this.day);
    }
    public static void main(String[] args) {
        //此處創(chuàng)建了?個(gè)Date類(lèi)型的對(duì)象,并沒(méi)有顯式調(diào)?構(gòu)造?法
        Date d1 = new Date(2026,5,20);   //輸出Date(int,int,int)?法被調(diào)?了
        Date d2 = new Date();
        d1.printDate();    // 2026/5/20
        d2.printDate();    // 2026/1/1
    }
}

如果用戶(hù)沒(méi)有顯式定義,編譯器會(huì)?成?份默認(rèn)的構(gòu)造?法,?成的默認(rèn)構(gòu)造?法?定是?參的,

數(shù)值全是取的默認(rèn)值,如果用戶(hù)顯式定義了構(gòu)造方法就不會(huì)調(diào)用默認(rèn)構(gòu)造

構(gòu)造?法中,可以通過(guò)this調(diào)?其他構(gòu)造?法來(lái)簡(jiǎn)化代碼

public Date(){
    this(1900, 1, 1);
}
// 帶有三個(gè)參數(shù)的構(gòu)造?法
public Date(int year, int month, int day) {
    this.year = year;
    this.month = month;
    this.day = day;
}
  • this(...)必須是構(gòu)造方法的第一條語(yǔ)句
  • 不能形成環(huán)的調(diào)用(a調(diào)用b,b同時(shí)調(diào)用a)

對(duì)象的打印

public class Person {
    String name;
    String gender;
    int age;
    public Person(String name, String gender, int age) {
        this.name = name;
        this.gender = gender;
        this.age = age;
    }
    public static void main(String[] args) {
        Person person = new Person("Jim"," 男 ", 18);
        System.out.println(person);//Person@4eec7777
    }
}

如果我們直接打印對(duì)象的引?,此時(shí)輸出的結(jié)果為:類(lèi)路徑名@對(duì)象的hashcode值

如果想要默認(rèn)打印對(duì)象中的屬性該如何處理呢?答案:重寫(xiě)toString?法即可

public class Person {
    String name;
    String gender;
    int age;
    public Person(String name, String gender, int age) {
        this.name = name;
        this.gender = gender;
        this.age = age;
}
    @Override
    public String toString() {
        return "[" + name + "," + gender + "," + age + "]";
    }
    public static void main(String[] args) {
        Person person = new Person("Jim","男", 18);
        System.out.println(person);
    }
}

重寫(xiě)會(huì)在多態(tài)講到

4,包

4.1 定義

包(Package)是Java中一個(gè)組織類(lèi)的方式,用于防止類(lèi)名沖突和提高代碼的可讀性。包允許將類(lèi)組織在一個(gè)層次中,類(lèi)似于文件系統(tǒng)中的目錄。文件夾

包是對(duì)類(lèi),接口等的封裝機(jī)制的體現(xiàn),是一種對(duì)類(lèi)或者接口等的很好的組織方式。

4.2 導(dǎo)入包

Java中提供了很多現(xiàn)成的類(lèi)供我們使用。例如Date類(lèi),可以使用java.util.Date導(dǎo)入java.util這個(gè)包中的Date類(lèi),指定類(lèi)的路徑。

public class Test {
        public static void main(String[] args) {
            java.util.Date date = new java.util.Date();
            //得到?個(gè)毫秒級(jí)別的時(shí)間戳
            System.out.println(date.getTime());
        }
}

常用import語(yǔ)句導(dǎo)入包

import java.util.Date;
public class Test {
        public static void main(String[] args) {
            Date date = new Date();
            System.out.println(date.getTime());
        }
}

如果需要使用java.util中的其他類(lèi),可以用import java.util.*,*是通配符

import java.util.*;

但是還是顯示指定要導(dǎo)入的類(lèi)名,否則可能會(huì)出現(xiàn)沖突的情況

import java.util.*;
import java.sql.*;
public class Test {
    public static void main(String[] args) {
        // util 和 sql 中都存在?個(gè) Date 這樣的類(lèi), 此時(shí)就會(huì)出現(xiàn)歧義, 編譯出錯(cuò) 
        Date date = new Date();
        System.out.println(date.getTime());
    }
}

不同包里如果有相同名字的類(lèi)就會(huì)出錯(cuò),這種情況就要寫(xiě)出完整的類(lèi)名

使用import static導(dǎo)入包中靜態(tài)的方法和字段

import static java.lang.Math.*;
public class Test {
    public static void main(String[] args) {
        double x = 30;
        double y = 40;
        // 靜態(tài)導(dǎo)?的?式寫(xiě)起來(lái)更?便?些
        // double result = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
        double result = sqrt(pow(x, 2) + pow(y, 2));
        System.out.println(result);
    }
}

不建議使用這種方法

4.3 自定義包

4.3.1 基本規(guī)則

  • 在文件的最上方加上一個(gè)package語(yǔ)句指定該代碼在哪個(gè)包中
  • 包名需要盡量指定成唯一的名字,通常會(huì)用公司的域名的顛倒形式(例如net.csdn.blog)
  • 包名要和代碼路徑相匹配,創(chuàng)建net.csdn.blog的包就會(huì)存在一個(gè)對(duì)應(yīng)的路徑net/csdn/blog來(lái)存儲(chǔ)代碼
  • 如果一個(gè)類(lèi)沒(méi)有package語(yǔ)句,類(lèi)會(huì)放在一個(gè)默認(rèn)包中

idea中新建包

4.3.2 常見(jiàn)的包

java.lang: 系統(tǒng)常?基礎(chǔ)類(lèi) (String 、 Object), 此包從 JDK1.1 后?動(dòng)導(dǎo)?。 java.lang.reflect:java 反射編程包 ;

java.net: 進(jìn)??絡(luò)編程開(kāi)發(fā)包。

java.sql: 進(jìn)?數(shù)據(jù)庫(kù)開(kāi)發(fā)的?持包。

java.util: 是 java 提供的?具程序包。 ( 集合類(lèi)等 )

java.io:I/O 編程開(kāi)發(fā)包。

4.4 包的訪(fǎng)問(wèn)權(quán)限

如果我們?cè)诙?個(gè)類(lèi)的時(shí)候,如果沒(méi)有指定成員變量/成員?法的訪(fǎng)問(wèn)權(quán)限,此時(shí)默認(rèn)的訪(fǎng)問(wèn)權(quán)限就是包訪(fǎng)問(wèn)權(quán)限

private String cpu;          
private String memory;       
public String screen;       
String brand; 

像brand就是默認(rèn)權(quán)限(包訪(fǎng)問(wèn)權(quán)限),在下面訪(fǎng)問(wèn)限定符中會(huì)具體講解

5,封裝

5.1 封裝的概念

面向?qū)ο蟮娜筇匦裕?strong>封裝,繼承,多態(tài)。封裝簡(jiǎn)單來(lái)說(shuō)就是套殼屏蔽細(xì)節(jié)(封閉包裝)

封裝:將數(shù)據(jù)和操作數(shù)據(jù)的?法進(jìn)?有機(jī)結(jié)合,隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開(kāi)接?來(lái)和對(duì)象進(jìn)?交互

class Student{
    private String name; //使? private  修飾
    private int age; //使? private  修飾
    public void eat() {
        System.out.println(this.name + " 正在吃飯!");
    }
    public void show() {
        System.out.println("name: "+name+" 年齡:"+age);
    }
}
public class Test {
    public static void main(String[] args) {
        Student stu= new Student();
    }
}

上述代碼使?private修飾之后,在Test類(lèi)中?法通過(guò)person引?來(lái)進(jìn)?訪(fǎng)問(wèn)數(shù)據(jù),這?封裝就起到 了作?! 如果要想訪(fǎng)問(wèn),此時(shí)只能?動(dòng)提供get和set?法作為公開(kāi)的接口來(lái)進(jìn)?訪(fǎng)問(wèn)。

idea中快速生成get和set方法

  1. 右鍵點(diǎn)生成

2.會(huì)在光標(biāo)處自動(dòng)生成

5.2 封裝的好處

1.降低代碼的耦合性

封裝可以降低對(duì)象和對(duì)象之間的耦合度,當(dāng)對(duì)象內(nèi)部發(fā)?變化時(shí),只需要修改對(duì)象內(nèi)部即可,不會(huì)影響到外部程序,因?yàn)楣_(kāi)的接口是不會(huì)發(fā)?改變的

2.降低代碼的復(fù)雜性

封裝是隱藏了對(duì)象內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),只提供了公開(kāi)的接口給外部,使?起來(lái)更加簡(jiǎn)單

3.提高安全性

封裝可以隱藏對(duì)象的具體實(shí)現(xiàn)細(xì)節(jié),阻?外部程序直接訪(fǎng)問(wèn)對(duì)象的內(nèi)部狀態(tài),從?保護(hù)數(shù)據(jù)不被意外修改或破壞

5.3 訪(fǎng)問(wèn)限定符詳解

Java中主要通過(guò)類(lèi)和訪(fǎng)問(wèn)權(quán)限來(lái)實(shí)現(xiàn)封裝:類(lèi)可以將數(shù)據(jù)以及封裝數(shù)據(jù)的?法結(jié)合在?起,更符合?類(lèi)對(duì)事物的認(rèn)知,?訪(fǎng)問(wèn)權(quán)限?來(lái)控制?法或者字段能否直接在類(lèi)外使?。Java中提供了四種訪(fǎng)問(wèn)限定符:

編號(hào)范圍私有(private)默認(rèn)(default)保護(hù)(protected)公有(public)
1同一包中的同一類(lèi)
2同一包中的不同類(lèi)
3不同包中的子類(lèi)
4不同包中的非子類(lèi)
  • public修飾的成員變量,在所指情況下都是可以正常訪(fǎng)問(wèn)的
  • private只能在當(dāng)前類(lèi)中使用
  • default是什么都不加,只能在包當(dāng)中才能訪(fǎng)問(wèn)

6,static關(guān)鍵字

6.1 修飾成員變量

class Student{
    private String name; 
    private int age; 
    public static String classRoom = "1-101";
}
public class Test {
    public static void main(String[] args) {
        Student stu1 = new Student();
        Student stu2 = new Student();
        Student stu3 = new Student();
    }
}

被static修飾的成員,稱(chēng)之為靜態(tài)成員,也可以稱(chēng)為類(lèi)成員,其不屬于某個(gè)具體的對(duì)象,是所有對(duì)象所共享的。

靜態(tài)成員變量的特性

  1. 不屬于某個(gè)具體的對(duì)象,是類(lèi)的屬性,所有對(duì)象共享,不存儲(chǔ)在某個(gè)對(duì)象的空間中,存儲(chǔ)在方法區(qū)
  2. 既可以通過(guò)對(duì)象訪(fǎng)問(wèn),也可以通過(guò)類(lèi)名訪(fǎng)問(wèn),但?般更推薦使?類(lèi)名訪(fǎng)問(wèn)
  3. ?命周期伴隨類(lèi)的??(隨類(lèi)的加載?創(chuàng)建,隨類(lèi)的卸載?銷(xiāo)毀)

6.2 修飾成員方法

被static修飾的成員方法稱(chēng)為靜態(tài)成員方法,是類(lèi)的方法,不是某個(gè)對(duì)象所特有的。靜態(tài)成員?般是通過(guò)靜態(tài)方法來(lái)訪(fǎng)問(wèn)的

public class Student{
    private static String classRoom = "409";
    public static String getClassRoom(){
        return classRoom;
    }
}
public class TestStudent {
    public static void main(String[] args) {
        System.out.println(Student.getClassRoom());
    }
}

靜態(tài)方法特性

  • 不屬于某個(gè)具體的對(duì)象,是類(lèi)?法
  • 可以通過(guò)對(duì)象調(diào)?,也可以通過(guò)類(lèi)名.靜態(tài)?法名(...)?式調(diào)?,更推薦使?后者
  • 不能在靜態(tài)?法中訪(fǎng)問(wèn)任何?靜態(tài)成員變量
  • 在靜態(tài)?法中調(diào)?時(shí)候?法傳遞this引?

6.3 static成員變量初始化

靜態(tài)成員變量的初始化分為兩種:就地初始化靜態(tài)代碼塊初始化

就地初始化

public static String classRoom = "1-101";

7,代碼塊

7.1 概念

就是{}里面的代碼,一共分為4類(lèi)

  1. 普通代碼塊
  2. 構(gòu)造塊
  3. 靜態(tài)塊
  4. 同步代碼塊

7.2 不同代碼塊的結(jié)構(gòu)

{ //直接使?定義,普通?法塊
       int x = 10 ;
       System.out.println("x1 = " +x);
}
 //實(shí)例代碼塊
{
    this.name = "cyy";
    this.age = 12;
    this.sex = "man";
}
// 靜態(tài)代碼塊
 static {
        classRoom = "409";
        System.out.println("I am static init()!");
}

注意

  • 靜態(tài)代碼塊不管?成多少個(gè)對(duì)象,其只會(huì)執(zhí)??次
  • 靜態(tài)成員變量是類(lèi)的屬性,因此是在JVM加載類(lèi)時(shí)開(kāi)辟空間并初始化的
  • 如果?個(gè)類(lèi)中包含多個(gè)靜態(tài)代碼塊,在編譯代碼時(shí),編譯器會(huì)按照定義的先后次序依次執(zhí)?(合并)
  • 實(shí)例代碼塊只有在創(chuàng)建對(duì)象時(shí)才會(huì)執(zhí)?

到此這篇關(guān)于Java類(lèi)和對(duì)象全面解析的文章就介紹到這了,更多相關(guān)Java類(lèi)和對(duì)象內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java定時(shí)任務(wù)的實(shí)現(xiàn)方式

    java定時(shí)任務(wù)的實(shí)現(xiàn)方式

    這篇文章主要介紹了java定時(shí)任務(wù)的實(shí)現(xiàn)方式,在應(yīng)用里經(jīng)常都有用到在后臺(tái)跑定時(shí)任務(wù)的需求,如何進(jìn)行java定時(shí)任務(wù),本文為大家進(jìn)行講解,感興趣的小伙伴們可以參考一下
    2016-02-02
  • java引用jpython的方法示例

    java引用jpython的方法示例

    這篇文章主要介紹了java引用jpython的方法,結(jié)合實(shí)例形式分析了java引用jpython及相關(guān)使用技巧,需要的朋友可以參考下
    2016-11-11
  • Java數(shù)據(jù)結(jié)構(gòu)之圖的兩種搜索算法詳解

    Java數(shù)據(jù)結(jié)構(gòu)之圖的兩種搜索算法詳解

    在很多情況下,我們需要遍歷圖,得到圖的一些性質(zhì)。有關(guān)圖的搜索,最經(jīng)典的算法有深度優(yōu)先搜索和廣度優(yōu)先搜索,接下來(lái)我們分別講解這兩種搜索算法,需要的可以參考一下
    2022-11-11
  • Java實(shí)現(xiàn)AES/CBC/PKCS7Padding加解密的方法

    Java實(shí)現(xiàn)AES/CBC/PKCS7Padding加解密的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)AES/CBC/PKCS7Padding加解密的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 詳解Spring Boot2 Webflux的全局異常處理

    詳解Spring Boot2 Webflux的全局異常處理

    這篇文章主要介紹了詳解Spring Boot2 Webflux的全局異常處理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • SpringBoot實(shí)現(xiàn)excel生成并且通過(guò)郵件發(fā)送的步驟詳解

    SpringBoot實(shí)現(xiàn)excel生成并且通過(guò)郵件發(fā)送的步驟詳解

    實(shí)際開(kāi)發(fā)中,特別是在B端產(chǎn)品的開(kāi)發(fā)中,我們經(jīng)常會(huì)遇到導(dǎo)出excel的功能,更進(jìn)階一點(diǎn)的需要我們定期生成統(tǒng)計(jì)報(bào)表,然后通過(guò)郵箱發(fā)送給指定的人員,?今天要帶大家來(lái)實(shí)現(xiàn)的就是excel生成并通過(guò)郵件發(fā)送,需要的朋友可以參考下
    2023-10-10
  • default怎么修飾接口中的方法詳解

    default怎么修飾接口中的方法詳解

    今天給各位小伙伴們總結(jié)一下default怎么修飾接口中的方法,文中有非常詳細(xì)的圖文解說(shuō).對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • 使用Java填充Word模板的方法詳解

    使用Java填充Word模板的方法詳解

    Java填充Word模板是一種將動(dòng)態(tài)數(shù)據(jù)插入到Word文檔模板中生成最終文檔的過(guò)程,通常用于批量創(chuàng)建包含個(gè)人信息、報(bào)告結(jié)果或其他動(dòng)態(tài)內(nèi)容的文檔,本文給大家介紹了使用Java填充Word模板的方法,需要的朋友可以參考下
    2024-07-07
  • 一篇文章帶你了解spring事務(wù)失效的多種場(chǎng)景

    一篇文章帶你了解spring事務(wù)失效的多種場(chǎng)景

    在日常編碼過(guò)程中常常涉及到事務(wù),在前兩天看到一篇文章提到了Spring事務(wù),那么在此總結(jié)下在Spring環(huán)境下事務(wù)失效的幾種原因.
    2021-09-09
  • IDEA設(shè)置Tab選項(xiàng)卡快速的操作

    IDEA設(shè)置Tab選項(xiàng)卡快速的操作

    這篇文章主要介紹了IDEA設(shè)置Tab選項(xiàng)卡快速的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02

最新評(píng)論

招远市| 独山县| 鹿邑县| 西盟| 邹城市| 新安县| 大兴区| 睢宁县| 秀山| 鲜城| 宁化县| 麻阳| 通山县| 翁牛特旗| 上林县| 阿拉尔市| 山西省| 和顺县| 竹北市| 承德县| 会同县| 江安县| 独山县| 彰武县| 华池县| 涞水县| 潢川县| 诏安县| 景德镇市| 平顶山市| 麻江县| 饶河县| 赣州市| 蚌埠市| 阳春市| 中西区| 乳山市| 西乡县| 寿光市| 鄂温| 刚察县|