实习日志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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…