java近期筆記整理

0x01 圖形界面的設(shè)計

java有swing包,可以很方便地設(shè)計圖形界面
各種組件可以new出來递惋,然后將其添加進(jìn)container中
每一個組件可以加監(jiān)視器

比如實現(xiàn)的這個:

共3個按鈕屏轰,每點擊一個按鈕就會彈出一個消息

具體實現(xiàn)如下:

package javaStudyDemo.swingDemo;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingControlDemo {
    private JFrame mainFrame;
    private JLabel headerLabel;
    private JLabel statusLabel;
    private JPanel controlPanel;
    public SwingControlDemo(){
            prepareGUI();
        }
        public static void main(String[] args){
            SwingControlDemo swingControlDemo = new SwingControlDemo();
            swingControlDemo.showEventDemo();
        }
        private void prepareGUI(){
            mainFrame = new JFrame("Java SWING Examples");
        mainFrame.setSize(400,400);
        mainFrame.setLayout(new GridLayout(3, 1));
        headerLabel = new JLabel("",JLabel.CENTER );
        statusLabel = new JLabel("",JLabel.CENTER);
        statusLabel.setSize(350,100);
        mainFrame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent windowEvent){
                System.exit(0);
            }
        });
        controlPanel = new JPanel();
        controlPanel.setLayout(new FlowLayout());
        mainFrame.add(headerLabel);
        mainFrame.add(controlPanel);
        mainFrame.add(statusLabel);
        mainFrame.setVisible(true);
    }
    private void showEventDemo(){
        headerLabel.setText("Control in action: Button");
        JButton okButton = new JButton("OK");
        JButton submitButton = new JButton("Submit");
        JButton cancelButton = new JButton("Cancel");
        okButton.setActionCommand("OK");
        submitButton.setActionCommand("Submit");
        cancelButton.setActionCommand("Cancel");
        okButton.addActionListener(new ButtonClickListener());
        submitButton.addActionListener(new ButtonClickListener());
        cancelButton.addActionListener(new ButtonClickListener());
        controlPanel.add(okButton);
        controlPanel.add(submitButton);
        controlPanel.add(cancelButton);
        mainFrame.setVisible(true);
    }
    private class ButtonClickListener implements ActionListener{
        public void actionPerformed(ActionEvent e) {
            String command = e.getActionCommand();
            if( command.equals( "OK" ))  {
                statusLabel.setText("Ok Button clicked.");
            }
            else if( command.equals( "Submit" ) )  {
                statusLabel.setText("Submit Button clicked.");
            }
            else  {
                statusLabel.setText("Cancel Button clicked.");
            }
        }
    }
}

0x02 java IO

java IO大體分為字節(jié)流和字符流

InputStreamReader和OutputStreamWriter是轉(zhuǎn)換流,前者將字節(jié)轉(zhuǎn)化為字符,后者將字符轉(zhuǎn)化為字節(jié)(這兩個類其實更多的是起到一個橋梁的作用突梦,進(jìn)行編碼的轉(zhuǎn)換)

BufferedReader和BufferedWriter是字符緩沖區(qū)

BufferedImage圖片的緩沖區(qū)
BufferedImage簡單示例:
先用FileInputStream打開流,

String imgPath = "C://demo.jpg";  
BufferedImage image = ImageIO.read(new FileInputStream(imgPath));  

FileReader和FileWriter讀取文本中的字符羽利,是一個快捷類

字節(jié)流的類都繼承于InputStream和OutputStream
字符流的類都繼承于Reader和Writer

0x03 java 序列化與反序列化

Java 提供了一種對象序列化的機(jī)制宫患,該機(jī)制中,一個對象可以被表示為一個字節(jié)序列这弧,該字節(jié)序列包括該對象的數(shù)據(jù)娃闲、有關(guān)對象的類型的信息和存儲在對象中數(shù)據(jù)的類型虚汛。
將序列化對象寫入文件之后,可以從文件中讀取出來皇帮,并且對它進(jìn)行反序列化卷哩,也就是說,對象的類型信息属拾、對象的數(shù)據(jù)将谊,還有對象中的數(shù)據(jù)類型可以用來在內(nèi)存中新建對象。
整個過程都是 Java 虛擬機(jī)(JVM)獨立的渐白,也就是說尊浓,在一個平臺上序列化的對象可以在另一個完全不同的平臺上反序列化該對象。

怎么理解序列化和反序列化呢
打個比方纯衍,比如A要見B栋齿,但是A和B相隔很遠(yuǎn)無法到達(dá),A只好委托一個人將B的信息(比如身高啦托酸,眼睛啦褒颈,各種相貌特征)傳送過來,然后自己畫出或者想象出B的樣子励堡,這就是一次數(shù)據(jù)傳輸?shù)倪^程谷丸,也就是一次序列化和反序列化的過程。

0x04 java 在線反編譯環(huán)境

經(jīng)常間歇性忘記jar包要怎么反編譯应结,這里有一個在線的反編譯環(huán)境
在線環(huán)境

0x05 java調(diào)用攝像頭

可以直接用GitHub上的一個包
地址

0x06 什么是java包管理工具刨疼?

java包管理工具,主要有Maven和Gradle,之前一直沒有明白java的包管理工具的用處是什么鹅龄,后來親自導(dǎo)入外部的包才意識到揩慕,原來java的包管理工具也就相當(dāng)于python的pip命令了。

0x07 java管理注冊表

有一個已經(jīng)打包好的工具:
JRegistry

0x08 java robot

這個沒有做過多的了解扮休,顧名思義就是一個機(jī)器人迎卤,可以實現(xiàn)自動化的一些操作。

0x09 java OpenCv學(xué)習(xí)

第一個OpenCv的demo


但是當(dāng)用OpenCv去打開攝像頭的時候出錯玷坠,問題還沒解決

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜗搔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子八堡,更是在濱河造成了極大的恐慌樟凄,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兄渺,死亡現(xiàn)場離奇詭異缝龄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門叔壤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瞎饲,“玉大人,你說我怎么就攤上這事百新∑笕恚” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵饭望,是天一觀的道長。 經(jīng)常有香客問我形庭,道長铅辞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任萨醒,我火速辦了婚禮斟珊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘富纸。我一直安慰自己囤踩,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布晓褪。 她就那樣靜靜地躺著堵漱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涣仿。 梳的紋絲不亂的頭發(fā)上勤庐,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機(jī)與錄音好港,去河邊找鬼愉镰。 笑死,一個胖子當(dāng)著我的面吹牛钧汹,可吹牛的內(nèi)容都是我干的丈探。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼拔莱,長吁一口氣:“原來是場噩夢啊……” “哼碗降!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起辨宠,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤遗锣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嗤形,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體精偿,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了笔咽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搔预。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叶组,靈堂內(nèi)的尸體忽然破棺而出拯田,到底是詐尸還是另有隱情,我是刑警寧澤甩十,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布船庇,位于F島的核電站,受9級特大地震影響侣监,放射性物質(zhì)發(fā)生泄漏鸭轮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一橄霉、第九天 我趴在偏房一處隱蔽的房頂上張望窃爷。 院中可真熱鬧,春花似錦姓蜂、人聲如沸按厘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逮京。三九已至,卻和暖如春滩字,著一層夾襖步出監(jiān)牢的瞬間造虏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工麦箍, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留漓藕,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓挟裂,卻偏偏與公主長得像享钞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子诀蓉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Java 語言支持的類型分為兩類:基本類型和引用類型栗竖。整型(byte 1, short 2, int 4, lon...
    xiaogmail閱讀 1,348評論 0 10
  • JAVA序列化機(jī)制的深入研究 對象序列化的最主要的用處就是在傳遞,和保存對象(object)的時候,保證對象的完整...
    時待吾閱讀 10,868評論 0 24
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,103評論 1 32
  • 面向?qū)ο笾饕槍γ嫦蜻^程。 面向過程的基本單元是函數(shù)渠啤。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,057評論 0 4
  • 今天與大家交流的是溝通的藝術(shù)沥曹,看入人里份名,看出人外碟联,來自十分讀書。 首先作者介紹了三部分內(nèi)容:一是看入人里”著重于探...
    琴琴思語閱讀 552評論 0 4