上海网站建设选缘魁-企查,win7 asp.net网站架设,wordpress _e函数,能做门户网站带论坛功能的cms第一天
加入内网和内网域#xff0c;设置自己的操作系统
第二天
安装常用软件和平台
Notepad 是一款免费的源代码编辑器#xff0c;支持多种编程语言#xff0c;其功能强大且界面友好#xff0c;适用于 Windows 操作系统。WinMerge 是一款开源的差异比较和合并工具设置自己的操作系统
第二天
安装常用软件和平台
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提供了 npmNode 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 xy;}public double add(double x,double y){return xy;}public double add(double x,double y ,double u){return xyu;}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 xy;}Overridepublic double add(double x, double y) {System.out.println(正在执行子类重写后的加法);return xy;}Overridepublic double add(double x, double y, double u) {System.out.println(正在执行子类重写后的加法);return xyu;}
}
抽象类自下而上的继承结构中越往上的类更具有一般性和抽象性月不能用来构造特定的实例
抽象类一般作为基类方便子类的拓展注意创建对象的两种方式第一种方式是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编译错误
类型强转错误数组访问越界空指针异常
其他异常IO ExceptionI/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 注入和语法错误。