- 博客(35)
- 收藏
- 关注
原创 Java面试常见问题总结
可变性String是不可变的(后面会详细分析原因)。与都继承自类,在中也是使用字符数组保存字符串,不过没有使用final和private关键字修饰,最关键的是这个类还提供了很多修改字符串的方法比如append方法。线程安全性String中的对象是不可变的,也就可以理解为常量,线程安全。是与的公共父类,定义了一些字符串的基本操作,如appendinsertindexOf等公共方法。对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。并没有对方法进行加同步锁,所以是非线程安全的。性能每次对。
2024-09-29 11:36:17
2190
原创 MySQL常见面试总结
SQL 是一种结构化查询语言(Structured Query Language),专门用来与数据库打交道,目的是提供一种从数据库中读写数据的简单有效的方法。几乎所有的主流关系数据库都支持 SQL ,适用性非常强。并且,一些非关系型数据库也兼容 SQL 或者使用的是类似于 SQL 的查询语言。新建数据库、数据表、字段;在数据库中增加,删除,修改,查询数据;新建视图、函数、存储过程;对数据库中的数据进行简单的数据分析;搭配 Hive,Spark SQL 做大数据;
2024-09-26 17:42:36
1737
原创 计算机网络常见面试题总结(上)
WebSocket 是一种基于 TCP 连接的全双工通信协议,即客户端和服务器可以同时发送和接收数据。WebSocket 协议在 2008 年诞生,2011 年成为国际标准,几乎所有主流较新版本的浏览器都支持该协议。不过,WebSocket 不只能在基于浏览器的应用程序中使用,很多编程语言、框架和服务器都提供了 WebSocket 支持。WebSocket 协议本质上是应用层的协议,用于弥补 HTTP 协议在持久通信能力上的不足。
2024-09-24 16:35:32
1134
原创 Java集合(下)
简单总结一下HashMap位运算效率更高:位运算(&)比取余运算(%)更高效。当长度为 2 的幂次方时,等价于。可以更好地保证哈希值的均匀分布:扩容之后,在旧数组元素 hash 值比较均匀的情况下,新数组元素也会被分配的比较均匀,最好的情况是会有一半在新数组的前半部分,一半在新数组后半部分。扩容机制变得简单和高效:扩容后只需检查哈希值高位的变化来决定元素的新位置,要么位置不变(高位为 0),要么就是移动到新位置(高位为 1,原索引位置+原容量)。
2024-09-24 16:34:11
1007
原创 Java集合(上)
ArrayListObject[]数组。VectorObject[]数组。LinkedList:双向链表(JDK1.6 之前为循环链表,JDK1.7 取消了循环)。(阻塞队列)是一个接口,继承自Queue。阻塞的原因是其支持当队列没有元素时一直阻塞,直到有元素;还支持如果队列已满,一直等到队列可以放入新元素时再放入常用于生产者-消费者模型中,生产者线程会向队列中添加数据,而消费者线程会从队列中取出数据进行处理。
2024-09-23 20:42:08
1076
原创 Java基础(下)
Java 泛型(Generics)是 JDK 5 中引入的一个新特性。使用泛型参数,可以增强代码的可读性以及稳定性。编译器可以对泛型参数进行检测,并且通过泛型参数可以指定传入的对象类型。比如这行代码就指明了该ArrayList对象只能传入Person对象,如果传入其他类型的对象就会报错。如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中,或者在网络传输 Java 对象,这些场景都需要用到序列化。序列化:将数据结构或对象转换成二进制字节流的过程反序列化。
2024-09-23 20:40:37
1182
原创 Java基础(中)
浅拷贝:浅拷贝会在堆上创建一个新的对象(区别于引用拷贝的一点),不过,如果原对象内部的属性是引用类型的话,浅拷贝会直接复制内部对象的引用地址,也就是说拷贝对象和原对象共用同一个内部对象。深拷贝:深拷贝会完全复制整个对象,包括这个对象所包含的内部对象。保存字符串的数组被final修饰且为私有的,并且String类没有提供/暴露修改这个字符串的方法。String类被final修饰导致其不能被继承,进而避免了子类破坏String不可变。
2024-09-20 16:29:19
1062
原创 Java基础(上)
在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以, Java 程序运行时相对来说还是高效的(不过,和 C、 C++,Rust,Go 等语言还是有一定差距的),而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。方法的返回值。
2024-09-20 16:27:20
1390
原创 Mybatis-Plus笔记
课程版本:3.5.3.1(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用。
2024-09-11 16:50:54
1659
原创 SpringBoot笔记
课程使用SpringBoot版本:3.0.5到目前为止,你已经学习了多种配置Spring程序的方式。但是无论使用XML、注解、Java配置类还是他们的混合用法,你都会觉得配置文件过于复杂和繁琐,让人头疼!SpringBoot 帮我们简单、快速地创建一个独立的、生产级别的Spring 应用(说明:SpringBoot底层是Spring),大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术!为所有 Spring 开发提供更快速、可广泛访问的入门体验。
2024-09-11 16:36:03
1719
原创 SSM框架整合实战
微观:将学习的Spring SpringMVC Mybatis框架应用到项目中!SpringMVC框架负责控制层Spring 框架负责整体和业务层的声明式事务管理MyBatis框架负责数据库访问层宏观:Spring接管一切(将框架核心组件交给Spring进行IoC管理),代码更加简洁。SpringMVC管理表述层、SpringMVC相关组件Spring管理业务层、持久层、以及数据库相关(DataSource,MyBatis)的组件使用IoC的方式管理一切所需组件实施。
2024-09-10 15:26:19
2298
原创 SpringMVC学习笔记
Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称(),但它通常被称为“Spring MVC”。在控制层框架历经Strust、WebWork、Strust2等诸多产品的历代更迭之后,目前业界普遍选择了SpringMVC作为Java EE项目表述层开发的首选方案。Spring 家族原生产品,与IOC容器等基础设施无缝对接表述层各细分领域需要解决的问题全方位覆盖,提供。
2024-09-10 15:14:08
1855
原创 Mybatis学习笔记
MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
2024-09-03 21:57:14
2264
原创 SpringFrameWork学习笔记
广义的 Spring:Spring 技术栈(全家桶)广义上的 Spring 泛指以 Spring Framework 为基础的 Spring 技术栈。经过十多年的发展,Spring 已经不再是一个单纯的应用框架,而是逐渐发展成为一个由多个不同子项目(模块)组成的成熟技术,例如 Spring Framework、Spring MVC、SpringBoot、Spring Cloud、Spring Data、Spring Security 等,其中 Spring Framework 是其他子项目的基础。
2024-09-03 21:54:49
2134
原创 Maven总结笔记
Maven是一款为Java项目构建管理、依赖管理的工具(软件),使用Maven可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。总结: Maven就是一个软件,掌握软件安装、配置、以及基本功能(项目构建、依赖管理)使用核心点掌握目标安装maven安装、环境变量、maven配置文件修改工程创建gavp属性理解、JavaSE/EE工程创建、项目结构依赖管理依赖添加、依赖传递、版本提取、导入依赖错误解决构建管理构建过程、构建场景、构建周期等继承和聚合。
2024-08-30 20:07:41
1366
1
原创 JavaWeb中的前端工程化
第七章 前端工程化一、前端工程化开篇1.1 什么是前端工程化前端工程化是使用软件工程的方法来单独解决前端的开发流程中模块化、组件化、规范化、自动化的问题,其主要目的为了提高效率和降低成本。1.2 前端工程化实现技术栈前端工程化实现的技术栈有很多,我们采用ES6+nodejs+npm+Vite+VUE3+router+pinia+axios+Element-plus组合来实现ECMAScript6 VUE3中大量使用ES6语法Nodejs 前端
2024-08-08 20:45:10
1233
原创 JavaWeb中的Ajax
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 不是新的编程语言,而是一种使用现有标准的新方法。AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。AJAX 不需要任何浏览器插件,但需要用户允许 JavaScript 在浏览器上执行。XMLHttpRequest 只是实现 Ajax 的一种方式。
2024-08-08 20:34:41
402
原创 JavaWeb中的过滤器和监听器
Filter,即过滤器,是JAVAEE技术规范之一,作用目标资源的请求进行过滤的一套技术规范,是Java Web项目中最为实用的技术之一Filter接口定义了过滤器的开发规范,所有的过滤器都要实现该接口Filter的工作位置是项目中所有目标资源之前,容器在创建HttpServletRequest和HttpServletResponse对象后,会先调用Filter的doFilter方法。
2024-08-07 18:15:20
365
原创 Session与Cookie
HTTP是无状态协议无状态就是不保存状态,即无状态协议(stateless),HTTP协议自身不对请求和响应之间的通信状态进行保存,也就是说,在HTTP协议这个级别,协议对于发送过的请求或者响应都不做持久化处理简单理解:浏览器发送请求,服务器接收并响应,但是服务器不记录请求是否来自哪个浏览器,服务器没记录浏览器的特征,就是客户端的状态举例: 张三去一家饭馆点了几道菜,觉得味道不错,第二天又去了,对老板说,还点上次的那几道菜。
2024-08-07 18:13:32
694
原创 JavaWeb中的Servlet
静态资源无需在程序运行时通过代码运行生成的资源,在程序运行之前就写好的资源. 例如:html css js img ,音频文件和视频文件动态资源需要在程序运行时通过代码运行生成的资源,在程序运行之前无法确定的数据,运行时动态生成,例如Servlet,Thymeleaf … …动态资源指的不是视图上的动画效果或者是简单的人机交互效果生活举例去蛋糕店买蛋糕直接买柜台上已经做好的 : 静态资源和柜员说要求后现场制作 : 动态资源。
2024-08-06 18:31:22
1113
原创 HTTP协议
HTTP 超文本传输协议(HTTP-Hyper Text transfer protocol),是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过十几年的使用与发展,得到不断地完善和扩展。它是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。客户端与服务端通信时传输的内容我们称之为报文。HTTP协议就是规定报文的格式。
2024-08-06 18:18:15
1064
原创 JavaWeb中的xml和tomcat
1.创建SAXReader对象2. 解析XML获取Document对象: 需要传入要解析的XML文件的字节输入流3. 获取文档的根标签4. 获取标签的子标签//获取所有子标签//获取指定标签名的子标签List sonElementList = rootElement.elements("标签名");5. 获取标签体内的文本6. 获取标签的某个属性的值String value = element.attributeValue("属性名");
2024-08-04 20:43:43
1178
原创 JavaWeb(HTML/CSS/JavaScript)学习笔记
本笔记基于【尚硅谷全新JavaWeb教程,企业主流javaweb技术栈】https://www.bilibili.com/video/BV1UN411x7xe?vd_source=a91dafe0f846ad7bd19625e392cf76d8总结课程包括由于JavaWeb里面的内容过多 我将分成三部分发推荐一个在线学习、练习的网站:w3school 在线教程文档声明根标签头部元素主体元素注释HTML基本内容专业词汇语法细节官网下载网站Visual Studio Code - C
2024-08-04 20:18:59
932
原创 Mysql数据库学习笔记
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。关系型数据库–用二维表来表示数据数据库文件:关系型数据库:二维表存储数据代表的一行数据列:字段修改表结构使得表满足数据库三范式的过程就是层层递进的过程:要满足数据库第一范式,就需要表中属性是原子不可分割的。要满足数据数据库第二范式,就需要消除表中的部分函数依赖。要满足数据库第三范式,就需要消除表中的传递函数依赖。
2024-03-01 23:24:43
986
1
原创 JavaSE学习日记
二进制0b 十进制 八进制0 十六进制0x// 整数扩展 二进制0b 八进制0 十进制 十六进制0xint c = 12;//浮点数的扩展 银行业务的表示//BigDecimal 数学工具类//float 舍入误差 接近但不等于//double//最好完全使用浮点数进行比较//字符拓展char c2 = '中';//所有字符的本质还是数字//编码 Unicode 97=a 0-65536//Unicode表示方式 U0000 UFFFF;
2024-02-13 19:50:18
739
1
原创 c++学习笔记
查看二维数组所占内存空间获取二维数组的首地址作用:将一段经常使用的代码封装起来,减少重复代码一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。函数的定义一般主要有5个步骤:1.返回值类型2.函数名3.参数列表4.函数体语句5.return表达式指针变量定义语法:数据类型 *变量名;第一种//成员列表//姓名int age;int score;s1.name = "张三";return 0;第二种//成员列表//姓名int age;
2024-01-11 20:39:10
1149
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人