日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

个人java学习心得总结

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 个人java学习心得总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習心得

(第一次使用csdn的編輯器,很多功能不熟悉,慢慢學,慢慢用把)

為什么決定走上java的道路

這次疫情應該是導致我決定重新學java的主要原因。作為一名大三的學生,平時也沒有特別的愛好,也就偶爾打打游戲,彈彈吉他,追追劇,刷刷b站而已。當然了也沒有什么特長,硬要說特長的話,也就游戲打的比別人好點。今年下半年就大四了,一想著平平無奇的自己又不是什么好學校出來的學生,也沒什么技術,出到社會后那可能就真的怕飯都吃不飽。想著找一份本專業的工作,最好是工資高點的,因為這樣未來才有盼頭。可惜我看b站上面的很多面試的視頻和很多dalao的程序就覺得自己出去可能像個廢人,下定決心把java學懂,至少能達到中級工程師的水平。

學習感受

說真的,如果是我自己一人學習的話,沒有絕對的興趣真的學不下去,更不可能談得上去熟練掌握,所以我決定找個靠譜的地方學習。目前看來找到的可以說的上是靠譜。每天學習就把所有的時間占滿了,雖然野有生活方面的瑣事困擾了我一段時間,但至少能挺過來的都不是太大的問題。很多事情現在不經歷,日后工作了也難免會遇到。

目前收獲

學到現在我覺得最大的改變就是知識體系的變化,我能夠明確感覺到我在看程序和寫程序的思路變了很多:之前是亂幾把寫,能編出來就行。現在的我至少會想著如何優化程序,以面向對象的思路去編寫一個程序,把重復的代碼放到一個方法中,調用方法就行。
然后就是了解了一點底層的原理,包括jvm虛擬機的運行,類創建的先后順序,堆棧大致是如何創建的,并且和程序的關聯。對象的創建過程,垃圾回收機制,調用方法和方法中的對象在jvm中的大致過程,
雖然確實對于底層這只是一點點,但是能摸到門檻就是好的。
慢慢的開始學著去看源碼,慢慢的看文檔了解java中真的是像海一般的方法和類,雖然也是才開始了解,先模門檻把,請叫我門檻戰神。說真的系統的學習知識真的是很有必要的,在大學根本沒學到過這種東西,教的東西太零零散散,而且自己也不會總結。
個人感覺,在學校學了點框架的知識后,重新重頭開始學有種很神奇的感覺,emm,就感覺為什么之前老師這樣講,好像明白了。包括面向對象的思維過程,,什么是單例模式,以及什么是構造方法,什么是繼承,什么是封裝,什么是多態,什么是實現,什么是抽象,什么是接口,為什么要面對抽象編程,為什么要面向接口編程。就感覺很奇妙

具體內容

(線上):學習了java基礎,最終能用java寫一個小系統(不詳細寫了)
(線下)

java中提供的各種類和方法(已學):
String
Format
Exception
Scanner
Math
Timer
File
Date
Calendar
小程序

小型管理系統(代碼太多不列出)

定時關機小程序(圖形界面)
import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.util.Timer; import java.util.TimerTask;/*** @author Solar* @date 2020/6/30 0030 - 13:35*//*定時關機小程序*/ public class Power {{UI u = new UI();}private Runtime r = Runtime.getRuntime();/*** 啟動關機計劃*/public void start(int time){try {r.exec("shutdown -s -t "+ time);} catch (IOException e) {e.printStackTrace();}}/*** 取消關機計劃*/public void abort(){try {r.exec("shutdown -a");} catch (IOException e) {e.printStackTrace();}}class UI extends JFrame implements ActionListener{//關機按鍵private JButton btnStart;//取消按鍵private JButton btnCancel;//接收文本框private JTextField inputTime;private JLabel tips;private int overtime;public UI(){//設置標題setTitle("定時開關小程序");//設置位置和大小setBounds(400,400,400,400);//設置當前界面顯示的相對位置,設置null時,界面會在屏幕中水平垂直居中setLocationRelativeTo(null);//設置禁止窗口大小修改setResizable(false);//設置當前窗口窗體總算在最頂層setAlwaysOnTop(true);//設置窗口關閉時結束進程setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//初始化組件init();//設置可見setVisible(true);}private void init(){/* //設置布局(流式布局)setLayout(new FlowLayout());*/setLayout(null);tips = new JLabel("請設置關機的時間");tips.setBounds(20,20,240,30);inputTime = new JTextField();inputTime.setBounds(20,60,340,30);btnStart = new JButton("啟動任務");btnStart.setBounds(50,100,120,40);btnCancel = new JButton("取消任務");btnCancel.setBounds(220,100,120,40);add(tips);add(inputTime);add(btnStart);add(btnCancel);/* //為啟動按鈕綁定事件btnStart.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("Start按鈕點擊");}});btnCancel.addActionListener((e)->{System.out.println("Cancel按鈕點擊");});*/btnStart.setActionCommand("start");btnCancel.setActionCommand("cancel");//為啟動按鈕綁定事件(this關鍵字,多態)btnStart.addActionListener(this);//為取消按鈕綁定事件btnCancel.addActionListener(this);}@Overridepublic void actionPerformed(ActionEvent e) {Timer timer = new Timer();String s = e.getActionCommand();if(s.equals("start")){String time = inputTime.getText();try {int t = Integer.parseInt(time);overtime=t;timer.schedule(new TimerTask() {@Overridepublic void run() {tips.setText("電腦將在"+ overtime-- +"秒后關機");}},0,1000);} catch (NumberFormatException ex) {tips.setText("請輸入正常的關機時間(秒)");}}if(s.equals("cancel")){abort();timer.cancel();tips.setText("計劃取消");}}} }
刪除文件:
public class DeleteFile {public void deleteAllFile(File dir){File[] files = dir.listFiles();if(files !=null) {for (int i = 0; i < files.length; i++) {if (files[i].isDirectory()) {deleteAllFile(files[i]);}files[i].delete();}}}public static void main(String[] args) {File file = new File("F:\\2345Downloads");new DeleteFile().deleteAllFile(file);} }
模擬紅包:
public class RedPacket1 {public void moneyPacket(double giveMoney,int sumPeople){//設置格式刷DecimalFormat fmt = new DecimalFormat("#.##");//拿到傳的錢double money = giveMoney;//設置比例數組int[] p = new int[sumPeople];//設置紅包數組BigDecimal[] peopleMoney = new BigDecimal[sumPeople];//設置分母int sumP = 0;//分母賦值for (int i = 0; i < p.length; i++) {p[i] = (int) (Math.random()*100+1);sumP += p[i];}//設置保底機制for (int i = 0; i < peopleMoney.length; i++) {String pm = "0.01";peopleMoney[i]=new BigDecimal(pm);}//保底后的金額money = money - 0.01*sumPeople;//設置每個人除保底外的分的金額BigDecimal[] b = new BigDecimal[sumPeople];for (int i = 0; i < b.length; i++) {String proportion = fmt.format((p[i]/(double)sumP)*money);b[i] = new BigDecimal(proportion);}for (int i = 0; i < sumPeople; i++) {peopleMoney[i].add(b[i]);}System.out.println(Arrays.toString(peopleMoney));}public static void main(String[] args) {RedPacket r = new RedPacket();r.moneyPacket(0.14,10);} }
使用日期類做日歷
public class MyCalendar {private int year;private int mouth;public MyCalendar(int year, int mouth) {this.year = year;this.mouth = mouth;}public void ShowCalender(){Calendar c = Calendar.getInstance();c.set(Calendar.YEAR,year);c.set(Calendar.MONTH,mouth-1);c.set(Calendar.DAY_OF_MONTH,1);//獲取月份天數int maxDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);//獲取第一天是星期幾int nowDOW = c.get(Calendar.DAY_OF_WEEK)-1;System.out.println("一\t二\t三\t四\t五\t六\t天");for (int i = 0; i < nowDOW-1; i++) {System.out.print("\t");}for (int i = 1; i <= maxDay; i++) {if(i<10){System.out.print("0"+i+"\t");}else {System.out.print(i+"\t");}if((i+nowDOW-1)%7==0){System.out.println("");}}}public static void main(String[] args) {new MyCalendar(2020,7).ShowCalender();} }

結尾

差不多就這些了,因為確實信息量太大不好全部列出來,只能截取一段,而且類的筆記都是實踐中學,邊學邊寫筆記太多了就不粘貼了,第一周大概就學了這些,基本老師講的都會了,進度跟得上。希望接下來幾個月保持狀態,好好學,找到一份不錯的工作把。

共勉!!
(新人報道,不喜勿噴)

總結

以上是生活随笔為你收集整理的个人java学习心得总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。