實習日志111

第一天

加入內網和內網域,設置自己的操作系統

第二天

安裝常用軟件和平臺

  • Notepad++ 是一款免費的源代碼編輯器,支持多種編程語言,其功能強大且界面友好,適用于 Windows 操作系統。
  • WinMerge 是一款開源的差異比較和合并工具,主要用于比較文件和文件夾的差異,并能夠幫助用戶合并不同的文件版本。
  • A5M2 是一款輕量級的音樂播放器,專為 Windows 設計,支持多種音頻格式,具有簡潔的用戶界面和高效的播放性能。
  • Sakura 是一款基于 Scintilla 的輕量級文本編輯器,主要面向日語用戶設計,但同樣適用于其他語言的文本編輯工作。
  • Snipaste 是一款屏幕截圖工具,同時也支持將剪貼板中的圖像或文字以浮動窗口的形式貼回到桌面上。
  • SVN:一個開源的集中式版本控制系統,主要用于軟件開發過程中對源代碼、文檔和其他文件進行版本控制和管理2。它通過客戶端-服務器架構實現,其中服務端負責存儲和管理所有數據,而客戶端則用于執行操作,如提交更改、更新文件等1

配置環境與項目

通過SVN遠程拉取項目,并通過maven統一配置依賴、下載jar包

第三天

項目功能測試

使用Postman進行文件上傳和下載的測試

首先通過代碼了解到功能的接口/file/upload

尋找到前端的ip地址10.170.xx.xxx組合成完成的請求url:http://10.10.xx.xxx/8081/file/upload區分請求類型

并且根據請求的要求配置header和body

任何請求都得帶著這仨

發送請求,根據response的類型判斷能否測試成功?

測試各功能接口的正常運行如用戶權限、

第四天

node.js

  • 可以快速搭建本地開發服務器,用于前端項目運行和調試
  • 支持前后端使用同一種語言(JavaScript)
  • 提供了 npm(Node Package Manager)或 yarn、pnpm 等包管理工具,用于安裝和管理項目依賴

項目的前端代碼下載了下來,首先從公司內部的SVN中找到前端項目代碼,然后下載node.js快速搭建前端項目框架,搭建好后cd到前端項目位置,打開終端,npm install下載前端項目依賴,然后npm run dev啟動項目。

但是啟動項目并不順利,缺少一些文件,要通過SVN別人同步更新后的代碼在同步更新自己的代碼,前端代碼在VS code中打開,下載SVN helper。現在的前端代碼就直接在SVN內部,每次又其他代碼更新啟動SVN update即可,有其他安裝的依賴,在終端輸入npm install 即可

構造器:在java中要想使用對象,首先要構造對象,并指定起初始狀態,構造一個Date類對象,構造器與類同名,并且總是要與new關鍵字一塊

new Date()來創建一個構造器

java所有的參數傳遞都是按值傳遞,方法得到的是對象引用的副本,原來的對象引用和這個副本都引用同一個對象
?

重寫:子類和父類之間,方法名、返回類型、參數列表必須相同,還要有@Override注釋

重載:本類,方法名必須相同,返回類型和方法參數不需要相同

public class SuanShu {public int add(int x,int y){return x+y;}public double add(double x,double y){return x+y;}public double add(double x,double y ,double u){return x+y+u;}public static void main(String[] args) {SuanShu suanShu = new SuanShu();JiSuan jiSuan = new JiSuan();System.out.println(jiSuan.add(4,5));System.out.println(jiSuan.add(4,5));System.out.println(jiSuan.add(4,5,6.0));System.out.println(suanShu.add(4,5));System.out.println(suanShu.add(4.0,5));System.out.println(suanShu.add(4,5,6.0));}
}
class JiSuan extends SuanShu{@Overridepublic int add(int x, int y) {System.out.println("正在執行子類重寫后的加法");return x+y;}@Overridepublic double add(double x, double y) {System.out.println("正在執行子類重寫后的加法");return x+y;}@Overridepublic double add(double x, double y, double u) {System.out.println("正在執行子類重寫后的加法");return x+y+u;}
}

抽象類:自下而上的繼承結構中,越往上的類更具有一般性和抽象性,月不能用來構造特定的實例

抽象類一般作為基類,方便子類的拓展,注意創建對象的兩種方式,第一種方式是p1是person的引用變量,實際指向的是Student對象

public abstract class Person {private String name;public Person(String name) {this.name = name;}abstract String getDescriprion();public String getName() {return name;}
}
class Student extends Person{private String college;public Student(String name,String college) {super(name);this.college = college;}@OverrideString getDescriprion() {return getName()+"這是一個來自"+college+"大學的學生";}
}class Tercher extends Person{private String highSchool;public Tercher(String name,String highSchool) {super(name);this.highSchool = highSchool;}@OverrideString getDescriprion() {return getName()+"是一個來自"+highSchool+"的老師";}
}
class M{public static void main(String[] args) {
//        Person person = new Person("我");抽象類不能直接實例化Person p1 = new Student("韓立","劍橋");Person p2 = new Tercher("陳平安","凡人修仙傳");System.out.println(p1.getDescriprion());System.out.println(p2.getDescriprion());Student student = new Student("蔣凡","雪中");System.out.println(student.getDescriprion());Tercher tercher = new Tercher("江凡","太虛至尊");System.out.println(tercher.getDescriprion());}
}

第五天

equal()方法是確定兩個對象引用是否相等?

hashCode()三列嗎是對象導出的一個整形值

反射

  • 運行時分析類的能力
  • 運行時檢查對象
  • 實現泛型數組操作代碼
  • 利用method對象,是函數指針

接口用來描述類應該做什么,而不是指定他們具體如何做?,里面不能包含自己的構造函數

public interface Car {public void Type();}class Moto implements Car{private String name;public Moto(String name) {this.name =name;}@Overridepublic void Type() {System.out.println("這是一輛"+name+"摩托車");}
}class Jeep implements Car{private String name;public Jeep(String name) {this.name = name;}@Overridepublic void Type() {System.out.println("這是一輛"+name +"吉普車");}public static void main(String[] args) {Car moto = new Moto("即可");Car jeep = new Jeep("牧馬人");moto.Type();jeep.Type();}
}

內部類是定義在另一個類中的類

  • 可以訪問外部類的所有成員(私有字段和方法)
  • 內部類對象必須依賴于外部類的對象
  • 內部類常用語封裝相關邏輯

有成員內部類、靜態內部類、局部內部類和匿名內部類?

下面這個案例中是成員內部類,而成員內部類必須依賴于外部類實例

Company company = new Company("Tech Corp", 100);
Department dept = company.new Department("HR", 10); // ? 正確

public class Company {private String name;private int totalEmployee;public Company(String name, int totalEmployee) {this.name = name;this.totalEmployee = totalEmployee;}public Dep printdepinfo(String name, int depnum) {return new Dep(name,depnum);}public class Dep{private String name;private int depnum;public Dep(String name, int depnum) {this.name = name;this.depnum = depnum;}public void printdepinfo(){System.out.println("公司名稱: " + Company.this.name);System.out.println("部門名稱: " + name);System.out.println("員工人數: " + depnum);System.out.println("公司總人數: " + Company.this.totalEmployee);}}
}
public class InnerClassTest {public static void main(String[] args) {// 創建一個公司Company myCompany = new Company("Tech Corp", 100);// 創建一個部門Company.Dep hrDept = myCompany.printdepinfo("HR", 10);// 顯示部門信息hrDept.printdepinfo();}
}

?exception分為

  • 運行時異常(runtime Exception):編譯錯誤
  1. 類型強轉錯誤
  2. 數組訪問越界
  3. 空指針異常
  • 其他異常(IO Exception):I/O錯誤

項目優化-背景分析

一個供應鏈系統的項目,上下游的供應商,每一個供應商有10個下級供應商,一共10級供應鏈,加起來大概有2000家元素,在kanmosi中顯示的時候每個公司卡片包含10個元素,后端響應正常返回數據及時,但前端顯示太慢,優化方向應該有哪些?

供應鏈系統是一個典型的樹狀結構數據渲染場景,設計大量嵌套元素,每個供應商卡片有10個元素(如文本、圖標、按鈕等),2000個供應商 × 10 =?20,000個DOM節點。嵌套結構(10級供應鏈)會導致DOM層級過深,瀏覽器渲染壓力極大。用戶首次加載頁面時,瀏覽器可能需要數秒甚至更久才能完成渲染。滾動、展開/折疊操作卡頓明顯。

項目優化-前端優化

  • 虛擬滾動:只渲染可視區域內的DOM節點,大幅減少DOM數量。避免一次性加載太多元素
  • edge瀏覽器前臺內存8個g,渲染出來站2個g,防止惡意用戶占用太多資源應該怎么優化
  • 精簡卡片元素結構:每個卡片對應的元素減少到7個,進一步減少DOM數量,減少 Diff 開銷

后端優化

  • 空間換時間:針對一些頻繁使用且不頻繁變更的數據,提前預熱起來,比如利用redis對標簽進行預熱,一些針對公司標簽、公司名稱等數據存在redis中,避免頻繁地查詢數據庫
  • 異步處理:如何將查看供應鏈系統的邏輯拆分出來,其中那些操作可以做異步執行
  • 批量操作數據庫:一次性操作大量的數據batchInsert()
  • 索引優化:針對上下游公司顯示的問題,完成一次完整的查詢需要的時間很長博客推薦,30s到0.8s,記錄一次接口優化成功案例!-騰訊云開發者社區-騰訊云

如何總結一次接口性能優化,接口性能倍增記:一次成功的優化實踐-阿里云開發者社區

ORM(對象-關系-映射):JOOQ、Mybatis

  • 數據庫的表--類
  • 記錄(行數據)--對象
  • 字段--度想的屬性

JOOQ(面相java對象查詢):也是一個ORM框架,相當于把SQl語言封裝了,以java編程的方式編寫SQL語句

代碼生成:可以將數據庫表結構映射為Java類,包含表的基本描述和所有表字段。

安全的SQL構建:通過 Java 代碼構建 SQL,避免字符串拼接導致的 SQL 注入和語法錯誤。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916824.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916824.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916824.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis 服務掛掉排查與解決

Redis 是一個高性能的鍵值對存儲系統,廣泛應用于緩存、會話存儲、消息隊列等場景。在使用 Redis 的過程中,偶爾會遇到 Redis 服務掛掉或無法連接的情況。本文將通過常見錯誤 RedisException in Redis.php line 63 Connection refused 來講解如何排查并解…

DOM + HTML + HTTP

一、HTML5的新特性 1.語義化標簽:其實就是可以讓標簽有自己的含義 html4之前都是有的,比如:<h1>、<ul>、<li> html5新增了很多語義化標簽:<header>、<nav> html5的語義化標簽的常用頁面布局: 優點: 1.代碼結構清晰,方便閱讀,有利于團…

HTML 音頻/視頻

HTML 音頻/視頻 引言 HTML 音頻和視頻標簽是網頁設計中不可或缺的部分,它們為用戶提供了一種將多媒體內容嵌入到網頁中的方式。本文將詳細介紹 HTML 音頻/視頻標簽的用法、屬性和注意事項,幫助開發者更好地在網頁中嵌入音頻和視頻。 HTML 音頻標簽( ) 1. 標簽基本用法 …

Apache Ignite Cluster Groups的介紹

以下這段內容是 Apache Ignite 官方文檔中關于 Cluster Groups&#xff08;集群組&#xff09; 的介紹。我來用通俗易懂的方式幫你全面理解這個概念。&#x1f310; 什么是 Cluster Group&#xff1f; 簡單來說&#xff1a;Cluster Group 就是一個“節點的子集”。想象一下你的…

github上傳本地項目過程記錄

最近有和別人進行unity項目協作的需求&#xff0c;需要把自己的本地代碼上傳到github已有的一個倉庫里。記錄一下上傳過程&#xff0c;防止后續還需要用。 文章目錄一、把自己的本地代碼上傳到github已有的一個倉庫中二、常用功能一、把自己的本地代碼上傳到github已有的一個倉…

Spring AI Alibaba

目錄 前言&#xff1a; 一、Spring AI 和Spring AI Alibaba 二、Spring AI Alibaba快速入門 1.環境 2.ollama 3.阿里百煉 前言&#xff1a; 2025年真的是AI大爆發的一年&#xff0c;以后無論是什么行業我想都需要AI了&#xff0c;作為一名計算機人&#xff0c;你不學習AI…

【GaussDB】內存資源告急:深度診斷一起“memory temporarily unavailable“故障

【GaussDB】診斷一起內存臨時不可用的問題 &#x1f4cb; 背景 在客戶測試環境中&#xff08;GaussDB 506.0 SPC0100 集中式&#xff09;&#xff0c;一個重度使用存儲過程的系統&#xff0c;頻繁出現內存臨時不可用的問題(ERROR: memory is temporarily unavailable)。令人困…

FastDFS如何提供HTTP訪問電子影像文件

Nginx 作為高性能的 Web 服務器和反向代理服務器&#xff0c;與 FastDFS 結合使用&#xff0c;本文主要介紹用于處理 FastDFS 存儲文件的 HTTP 訪問請求&#xff0c;方便客戶端通過 HTTP 協議直接訪問存儲在 FastDFS 中的文件&#xff0c;在電子影像系統中&#xff0c;Nginx 可…

水面垃圾識別分割數據集labelme格式2111張8類別

數據集中有部分增強圖片&#xff0c;注意為了提供模型泛化識別能力&#xff0c;有很少一部分不是水面垃圾。具體看圖片數據集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;僅僅包含jpg圖片和對應的json文件)圖片數量(jpg文件個數)&#xff1a;2111標注數量(json文件…

北京-4年功能測試2年空窗-報培訓班學測開-第六十二天-模擬未通過,繼續準備自我介紹項目介紹面試題中

今日產出&#xff0c;完成昨天模擬面試錄音的重聽和整理&#xff0c;完成自我介紹梳理&#xff0c;還重寫了三個算法題&#xff0c;寫了4個sql題。和同學打語音提問今天專注力不強&#xff0c;因為焦慮項目和面試題。關于項目&#xff0c;我理解的&#xff0c;老師以前錄屏講的…

自動化輔助工具教程

該工具支持全部平臺使用

里程碑 | 1Panel開源面板GitHub Star數量突破30,000個!

截至2025年7月23日20:00&#xff0c;飛致云旗下開源項目——1Panel開源Linux服務器運維管理面板GitHub Star數超過30,000個&#xff01; 繼Halo之后&#xff0c;1Panel成為飛致云旗下第二個GitHub Star數量超過30,000個的開源項目&#xff0c;也是飛致云旗下最快達成30,000個Gi…

雨雪霧冰全預警:交通氣象站為出行安全筑起“隱形防護網”

冬季濃霧彌漫高速&#xff0c;能見度降至 50 米以下&#xff1b;夏季暴雨傾盆&#xff0c;低洼路段眨眼間積水成河…… 惡劣天氣總是公路交通安全的大敵。關鍵時刻&#xff0c;交通氣象站挺身而出&#xff0c;成為保障道路暢通與行車安全的科技尖兵。交通氣象站專為復雜道路環境…

C++(面向對象之繼承、多態)

一、繼承前言在c里面&#xff0c;繼承是指2個類之間的關系例如&#xff1a;有一個org類&#xff0c;功能很完善&#xff0c;體量很大&#xff0c;突然有一天&#xff0c;需求發生改變&#xff0c;org類不能滿足新的需求&#xff0c;我們的第一想法是&#xff0c;復制 org 類代碼…

【數據可視化-75】北京密云區2025年7月暴雨深度分析:Python + Pyecharts 炫酷大屏可視化(含完整數據、代碼)

&#x1f9d1; 博主簡介&#xff1a;曾任某智慧城市類企業算法總監&#xff0c;目前在美國市場的物流公司從事高級算法工程師一職&#xff0c;深耕人工智能領域&#xff0c;精通python數據挖掘、可視化、機器學習等&#xff0c;發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

Voxtral Mini:語音轉文本工具,支持超長音頻,多國語音

Voxtral是什么 Mistral AI 推出的 Voxtral 是一款強大的音頻模型&#xff0c;專為語音交互打造&#xff0c;具備卓越的語音轉寫和語義理解能力。它提供 24B 和 3B 兩種版本&#xff0c;分別適用于大規模生產和本地部署。Voxtral 支持多語言、長文本上下文、問答與總結&#xf…

React Native環境配置完整版(超詳細)

目錄 第一步&#xff1a;打開React Native官方網站 第二步&#xff1a;安裝NVM與Node.js 一、安裝NVM 二、使用NVM安裝Node.js 三、NVM使用說明 四、環境變量配置 第三步&#xff1a;安裝JDK 一、JDK介紹 二、下載與安裝JDK 三、環境配置 四、驗證是否配置成功 第四…

Rust 最短路徑、Tide、Partial、Yew、Leptos、數獨實踐案例

基于Rust的Meta和pyrefly相關實例 以下是一些基于Rust的Meta和pyrefly相關實例的示例代碼和用法。這些示例涵蓋了常見的使用場景,包括元編程、代碼生成、Python交互等。 基本元編程示例 使用Rust的宏和元編程功能生成代碼。 macro_rules! greet {($name:expr) => {prin…

Microsoft-DNN NTLM暴露漏洞復現(CVE-2025-52488)

免責申明: 本文所描述的漏洞及其復現步驟僅供網絡安全研究與教育目的使用。任何人不得將本文提供的信息用于非法目的或未經授權的系統測試。作者不對任何由于使用本文信息而導致的直接或間接損害承擔責任。如涉及侵權,請及時與我們聯系,我們將盡快處理并刪除相關內容。 前…

Windows上WSL2實例與宿主機橋接網絡實現局域網互通

在 WSL 2 中&#xff0c;默認使用 NAT 網絡模式&#xff0c;這會導致 WSL 實例和宿主機所在的局域網無法直接互通。要讓 WSL 2 和宿主機所在的局域網互通&#xff0c;可以通過以下步驟配置 wsl.conf 并結合宿主機網絡設置&#xff0c;啟用 WSL 2 的橋接模式&#xff1a;修改 ws…