最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

黑馬程序員Java零基礎(chǔ)視頻教程_上部(Java入門,含斯坦福大學(xué)練習(xí)題+力扣算

2023-02-21 22:29 作者:別降下這么合適的雨a  | 我要投稿

采用直接賦值的方式,如果字符串相等,則會去字符串常量池中直接找到相應(yīng)字符串的地址。

jdk7之后堆內(nèi)存是跟方法的執(zhí)行有關(guān),進(jìn)棧出棧

堆內(nèi)存跟對象的存儲有關(guān),字符串常量池也在堆內(nèi)存中

new出來的字符串會在堆內(nèi)存中新開辟存儲空間,所以引用同一個字符數(shù)組,它們的地址值也不同。

?
字符串-03-String構(gòu)造方法代碼實(shí)... P98 - 15:59
?




ctrl+alt+t快捷鍵

Scanner sc = new Scanner(System.in);

String str = sc.next();

system.out.println("請輸入字符串");

int bigcount; //大寫字母計(jì)數(shù)器

int smallcount; //小寫字母計(jì)數(shù)器

int numbercount; //數(shù)字計(jì)數(shù)器

for(i = 0;i<str.length();i++){

char c = str.charAt(i);

if(c>= 'a' && c<='z'){

smallcount++;

}else if(c>= 'A' && c<='Z'){

bigcount++;

}else if(c>= '0' && c<='9'){

number++;

}else{

system.out.println("不屬于統(tǒng)計(jì)范圍");

}

}

system.out.println("大寫字母:"+bigcount);

system.out.println("小寫字母:"+smallcount);

system.out.println("數(shù)字:"+numbercount);

字符串拼接

金額轉(zhuǎn)換代碼

Scanner scanner = new Scanner(System.in);
    int money;
    while (true) {
        money = scanner.nextInt();
        if (money >=0 && money <= 9999999){
            break;
        }else {
            System.out.println("輸入金額錯誤");
        }
    }

    System.out.println(money);

    String moneyStr = ""; //用來獲取大寫轉(zhuǎn)換之后的金額
    // 從右往左,從個位到最高位
    while (true) { //123
        int ge = money % 10; //3
        String capitialNumber = getCapitialNumber(ge); // 叁貳壹
        moneyStr = capitialNumber + moneyStr; //用于正向輸出,壹貳叁
        money = money / 10; //12
        if (money == 0){
            break;
        }
    }
    System.out.println(moneyStr);

    // 表示單位的數(shù)組
    String[] arr = {"零","佰","拾","仟","佰","拾","圓"};

    int count = 7 - moneyStr.length();
    for (int i = 0; i < count; i++) {
        moneyStr = "零" + moneyStr;
    }

    String result = "";
    for (int i = 0; i < moneyStr.length(); i++) {
        char c = moneyStr.charAt(i);
        result = result + c + arr[i];
    }

    System.out.println(result);
}

public static String getCapitialNumber(int number){
    String[] arr = {"零","壹","貳","叁","肆","伍","陸","柒","捌","玖"};
    return arr[number];
}

substring用法

StringBuilder只是一個容器,說白了就是一個工具類,而用其對字符串進(jìn)行操作完之后,需要用toString()方法,轉(zhuǎn)成字符串,才能用字符串的相關(guān)方法

StringBuilder中的方法

StringBuilder的應(yīng)用場景

StringJoiner的構(gòu)造方法




java8之前,有變量參與的字符串拼接是通過先在串池中存儲,再通過StringBuilder進(jìn)行字符串拼接,再toString進(jìn)行字符串轉(zhuǎn)換

StringBuilder的擴(kuò)容機(jī)制



集合不能直接存基本數(shù)據(jù)類型,需要定義成相應(yīng)的包裝類,集合可以自由伸縮長度

數(shù)組可以直接存儲基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,數(shù)組長度固定

引入泛型的概念,在arraylist中指限定集合存儲的類型

arraylist不能直接添加基本數(shù)據(jù)類型,要在泛型里面規(guī)定基本數(shù)據(jù)類型所對應(yīng)的包裝類

下面是錯誤示范,循環(huán)創(chuàng)建對象的時候要把對象放在循環(huán)里面,不然只是在循環(huán)外面創(chuàng)建了一個對象,而循環(huán)里面拿著這一個對象的地址值去創(chuàng)建對象,堆中的對象地址值是一樣的,相當(dāng)于復(fù)制。

shift+alt+↓可以一定代碼,選中多行也可以移動多行

加了static的就是靜態(tài)的東西,是隨著類加載而加載的,優(yōu)先于對象,是共享的

在類中,普通的成員方法默認(rèn)會有一個this,記錄方法調(diào)用者的地址值,這是由虛擬機(jī)賦值的,但是靜態(tài)的成員沒有this


靜態(tài)方法中不能調(diào)用非靜態(tài)的成員變量和方法

,因?yàn)樯厦嬉呀?jīng)說過,非靜態(tài)的默認(rèn)有一個this去調(diào)用變量和方法,而靜態(tài)沒有,也就是說靜態(tài)沒有對象去調(diào)用變量和方法



jdk9之后允許private修飾的方法,以下是jdk9用private修飾的方法


適配器設(shè)計(jì)模式:

當(dāng)某個類只需要實(shí)現(xiàn)接口中的一部分方法時,可以在實(shí)現(xiàn)類與接口之間夾一層適配器類,對接口中的方法進(jìn)行空實(shí)現(xiàn),該實(shí)現(xiàn)類再去繼承適配器,實(shí)現(xiàn)其中的某些方法就可以了

內(nèi)部類有:成員內(nèi)部類,靜態(tài)內(nèi)部類,局部內(nèi)部類,匿名內(nèi)部類

匿名內(nèi)部類:這里所說的類名和接口名,其實(shí)是其他類的類名和接口名,匿名內(nèi)部類本身沒有名字

匿名內(nèi)部類會在編譯之后,java自動生成一個字節(jié)碼文件,用來保存匿名內(nèi)部類所包含的信息

找到這個字節(jié)碼文件所在的包,利用javap 匿名內(nèi)部類的字節(jié)碼文件,就可以反編譯出來


?
面向?qū)ο筮M(jìn)階-23-匿名內(nèi)部類 P143 - 22:16
?

當(dāng)一個類只用一次,比如狗這個類,只調(diào)用一次,這時就只需要把匿名內(nèi)部類作為參數(shù)定義就可以了

整個匿名內(nèi)部類可以看作一個對象,可以在大括號后面"."出來它包含的方法或?qū)傩?/p>

API

Math.cbrt()開立方根


System工具類

arraycopy:如果是基本數(shù)據(jù)類型,數(shù)據(jù)源數(shù)組與目的地?cái)?shù)組的數(shù)據(jù)類型要一致,不然會報(bào)ArrayStoreException異常。


RunTime

System.out.println:

System:類名

out:java定義的靜態(tài)變量

println:方法

當(dāng)我們打印一個對象的時候,底層會調(diào)用對象的toString()方法,把對象變成字符串,打印在控制臺上,打印完畢再進(jìn)行處理


Object

1·toString()方法是Object類中的方法,其他類默認(rèn)繼承object類,想要打印對象可以在類中重寫toString()方法

2·equals()與重寫equals():如果不重寫equals,默認(rèn)使用的是Object類中的equals()方法,比較的是兩個對象的地址值是否相等;在類中重新equals方法則,比較的是兩個對象的內(nèi)容是否相等。

instanceof是一個二元比較運(yùn)算符,比較兩邊是否是同一對象或繼承樹中的對象,是則返回true



淺克?。翰还苋叨唬瑢⒁寺ο蟮乃行畔⒍伎截惖搅硪粋€對象中,缺點(diǎn)是原來的內(nèi)容變了,拷貝過來的也要變

深克?。褐灰皇鞘謩觧ew的東西,克隆的地址不變,比如字符串都是存儲在串池中的,根據(jù)字符串優(yōu)化機(jī)制,會找到內(nèi)容相同的字符串,而數(shù)組則是new出來的,所以克隆時會新開辟空間,將原來數(shù)組中的內(nèi)容復(fù)制過去。

重寫clone()方法,使其變成深克隆,因?yàn)閚ewData是新創(chuàng)建的數(shù)組,其地址值與原來數(shù)組的地址值不同,所以只要再把newData的地址值賦值給data就可以了

BigInteger

bigInteger一旦創(chuàng)建,則里面的值不能改變

BigInteger中的valueOf靜態(tài)方法,等表示的范圍限于Long類型的范圍

正則表達(dá)式


[]:只匹配一個字符,要想多個匹配,可以多些幾次或用{}

正則表達(dá)式里&只是表示一個符號,&&才是而且的意思

{}:表示前面匹配的表達(dá)式往后匹配多少次

(?i):忽略大小寫

快速編輯正則表達(dá)式的插件:any-rule


爬蟲(一般都是字符串):

1.先用Pattern.compile(“相應(yīng)的正則表達(dá)式”).matcher(字符匹配器,要爬取的字符串),賦值給一個字符串變量m保存。

2.因?yàn)椴恢雷址拈L度,需要用while循環(huán)去循環(huán)獲取

while(m.find()){//m.find()表示讀取字符串中的內(nèi)容

String s = m.group();

System.out.println(s);

}

有條件的匹配爬?。?/p>

String regex = "Java(?=8|11|17)"

其中只有在括號中的?表示前面的數(shù)據(jù)Java

?=表示匹配前面的數(shù)據(jù),但是=后面的數(shù)據(jù)匹配上后不顯示

?:表示:后面的數(shù)據(jù)也一塊顯示

?
常用API-13-帶條件爬取,貪婪爬... P167 - 05:37
?

貪婪爬?。?/p>

正則表達(dá)式后面只寫+或者*

非貪婪爬取:

在+或者*后面再寫一個?

Date d = new Date(0L);//表示時間原點(diǎn)

d.setTime(1000L);//setTime的參數(shù)是Long類型,并且返回的是從時間原點(diǎn)開始,過了1000毫秒的時間



先用SimpleDateFormat去規(guī)定格式

再用parse將傳進(jìn)來的字符串轉(zhuǎn)換成日期對象

再用getTime方法獲取毫秒值


Calendar是一個抽象類,不能直接new,需要用getIntence方法來創(chuàng)建對象。默認(rèn)獲取的是當(dāng)前時間,會把所有信息都保存在一個叫ZoneInfo的數(shù)組中。


Integer調(diào)用valueOf()方法時,先判斷傳進(jìn)來的數(shù)據(jù)是否在[-128,127]之間,如果在,則直接返回,不在則new一塊空間存儲數(shù)據(jù)。

模擬parseInt,將字符串轉(zhuǎn)換為整型


mid = (min + max)/2 向下取整

等差數(shù)列法確定mid



黑馬程序員Java零基礎(chǔ)視頻教程_上部(Java入門,含斯坦福大學(xué)練習(xí)題+力扣算的評論 (共 條)

分享到微博請遵守國家法律
永宁县| 聂拉木县| 吉首市| 达拉特旗| 崇阳县| 万荣县| 阿克陶县| 金溪县| 玉林市| 冀州市| 西林县| 聂拉木县| 西贡区| 高阳县| 珠海市| 长武县| 丽江市| 武鸣县| 桃园县| 临桂县| 应城市| 崇信县| 海安县| 贵定县| 铜鼓县| 噶尔县| 扎兰屯市| 临沂市| 玛曲县| 修武县| 巴彦县| 新晃| 蚌埠市| 乐至县| 沁源县| 始兴县| 大悟县| 延川县| 棋牌| 福安市| 广德县|