- 博客(180)
- 收藏
- 关注
原创 JavaWeb_请求参数,设置响应数据,分层解耦
ConponentScan 注解虽然没有显示配置,但是实际上已经包含在了启动类声明注解@SpringBootApplication中,默认扫描范围是启动类所在包及其子包。1.@Autowired是spring框架提供的注解,而@Resource是JDK提供的注解。@Autowired注解,默认是按照类型进行,如果存在多个相同类型的bean,将会报错。依赖注入:简称DI,容器为应用程序提供运行时,所依赖的资源,称之为依赖注入。Bean对象:IOC容器中创建,管理的对象,称之为Bean。
2026-03-21 19:51:38
241
原创 JavaWeb_SpringBootWeb,HTTP协议,Tomcat快速入门
需求:使用SpringBoot开发一个web应用,浏览器发起/hello请求后,给浏览器返回字符串"hello World!创建Spring工程后可将.mvn文件夹 mvnw mvnw.cmd gitinore 与help.md删除。请求方式-get:请求参数在请求行中,没有请求体.get方式请求大小是有限制的。2.定义HelloController类,添加方法Hello,并添加注解。请求方式-post:请求参数在请求体中,post请求大小是没有限制的。将项目放置在webapps目录下即部署完成。
2026-03-20 00:38:02
72
原创 JavaWeb_maven
依赖的jar包,默认情况下,可以在任何地方使用.可以通过<scope> </scope>设置其作用范围。每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。1.在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。间接依赖:被以来的资源如果以来其他资源,当前项目简介依赖其他资源。default:核心工作,如:编译,测试,打包,安装,部署等。排除依赖指主动断开依赖的资源,被排除的资源无需指定版本。直接依赖:在当前项目中通过以来配置建立的依赖关系。
2026-03-19 21:07:57
77
原创 JavaWeb_Javascript快速入门
ECMAScript 6新增let关键字用于定义变量,它的用法类似于var,但是所声明的变量只在let关键字所在的代码块内有效,且不允许重复声明。如果在两个值相比较时,==会先将左右两边的值转换为同一类型再进行比较,而===则会直接进行比较,如果发现两边值类型不同则直接返回false。在JS中,函数调用可以传递任意个数的参数(传递个数没有限制,但接收是按顺序的,多出来的参数无意义)指令:HTML标签上带有v- 前缀的特殊属性,不同指令具有不同意义,例如:v-if,v-for....
2026-03-16 00:31:04
308
原创 JavaWeb_HTML/CSS快速入门
盒子模型组成:内容区域(content),内边距区域(padding),边框区域(border),外边距区域(margin)页面中所有的元素(标签)都可以看作是一个盒子,由盒子将页面中的元素包含在一个矩形区域内,通过盒子的视角更方便的进行页面布局。<input>:定义表单项,通过type属性控制输入形式。场景:在网页中以表格(行,列)形式整齐展示数据,如:班级表。场景:在网页中主要负责数据采集功能,如注册,登陆等数据采集。表单项:不同类型的input元素,下拉列表,文本域等。
2026-03-15 00:43:46
185
原创 MySQL_合计/统计函数
count(*)返回满足条件的记录的总行数,count(列)统计满足条件的某列有多少个,但是会排除为null的情况。注意:sum仅对数值起作用,其他类型无意义;对多列求和需要加上" , "号。合计函数 --Sum返回满足where条件的行的和,一般使用在数值列。合计函数 --Max/min返回满足where条件的一列最大/最小值。统计函数 --Count返回行的总数。合计函数 --avg。
2026-01-17 05:03:49
65
原创 MySQL_SELECT语句
1.ORDER BY指定排序的列,排序的列既可以是表中的列名,也可以是SELECT语句后指定的列名。5.DISTINCT可选,指显示结果时,是否去掉重复数据。3.ORDER BY子句应位于SELECT语句的结尾。2.ASC 升序(默认) DESC 降序。1.SELECT指定查询哪些列的数据。3. * 号代表查询所有列。4.FROM指定查询哪张表。2.COLUNM指定列名。
2025-12-24 20:37:36
194
原创 MySQL_INSERT UPDATE DELETE语句
6.可以以 INSERT INTO tab_name(列名) values (),(),()的形式添加多条记录。4.如果需要修改多个字段,可以通过 set字段1 = 值1,字段2 = 值2......2.DELETE语句不能删除某一列的值,(可使用update 设为null或者' ')8.默认值的使用,当不给某个字段值时,如果有默认值就会添加,否则报错。3.在values中列出的数据位置必须与被加入的列的排列位置相对应。7.如果是给表中的所有字段添加数据,可以不写前面的字段名称。将删除表中的所有数据。
2025-12-24 18:05:44
320
原创 MySQL表的操作指令与常用数值类型
在存放文本时 ,也可以使用Text数据类型, 可以将TEXT列视为VARCHAR列, 注意Text不能有默认值,大小为0-2^16字节,如果需要存放更多字符,可以选择MEDIUMTEXT 0-2^24 或者LONGTEXT 0-2^32。varchar(4)是变长,也就是说,即使插入'aa',实际占用空间大小并不是4个字符,而是按照实际占用空间来分配(varchar本身还需要占用1-3个字节来记录存放内容长度)1.如果数据是定长,推荐使用char,比如md5的密码,邮编,手机号,身份证号码等,
2025-12-18 22:59:47
572
原创 MySQL数据库操作指令
2.COLLATE:指定数据库字符集的校对规则 (常用的utf8_bin(区分大小写) ,utf8_general_ci(不区分大小写,默认是这个))mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库3 > 文件名.sql。mysqldump -u 用户名 -p 数据库 表1 表2 表n > d:\\文件名.sql。1.CHARACTER SET:指定数据库采用的字符集,如果不指定字符集,默认utf-8。恢复数据库(进入SQLyog再执行)Source 文件名.sql。
2025-12-18 17:14:03
227
原创 Java_MySQL介绍
安装MySQL数据库,就是在主机安装一个数据库管理系统(DBMS),这个管理程序可以管理多个数据库,DBMS(Database Manage System)DML:数据操作语句(增加insert,修改update,删除delete)DCL:数据控制语句(如管理数据库的用户权限 grant revoke)DDL:数据定义语句(create表,库.....)一个数据库中可以创建多个表,以保存数据(信息)在java程序中,一行记录往往用对象表示。DQL:数据查询语句(select)
2025-12-18 15:24:03
179
原创 Java_反射暴破创建对象与访问类中的成员
getDecalaredConstructor(Class ....class):根据参数列表,获取对应的所有构造器对象。getConstructor(Class ....class):根据参数列表,获取对应的public构造器对象。newInstance:调用类中的无参构造器,获取对应类的对象。测试1:通过反射创建某类的对象,要求该类中必须有public的无参构造。测试2:通过调用某个特定构造器的方式,实现创建某类的对象。1.方式一:调用类中的public修饰的无参构造器。
2025-12-17 16:14:53
290
原创 Java_通过反射获取类的结构信息
说明:默认修饰符是0,public是1,private是2,protected是4,static是8,final是16。3.getFields:获取所有public修饰的属性,包含本类以及父类的。第四组:java.lang.reflect.Constructor类。11.getInterfaces:以Class[]形式返回接口信息。第三组:java.lang.reflect.Method类。第二组:java.lang.reflect.Field类。1.getModifiers:以int形式返回修饰符。
2025-12-16 22:21:27
256
原创 Java_类的加载
3.虚拟机会保证一个类的<clinit>()方法在多线程环境中被正确的加锁,同步,如果多个线程同时去初始化一个类,那么只会有一个线程去执行这个类的<clinit>()方法,其他线程都需要阻塞等待,直到活动线程执行<clinit>()方法完毕。JVM在该阶段的主要目的是将字节码从不同的数据源(可能是class文件,也可能是jar包,甚至网络)转化为二进制字节流加载到内存中,并生成一个代表该类的java.lang.Class对象。1.静态加载:编译时加载相关的类,如果没有则报错,依赖性太强。
2025-12-16 21:06:39
413
原创 Java_Class类
7.类的字节码二进制数据,是放在方法区的,有的地方称为类的元数据(包括 方法代码,变量名,方法名,访问权限等等)3.前提:已知某个类的实例,调用该实力的getClass()方法获取Class对象,实例。3.对于某个类的Class类对象,在内存中只有一份,因为类只加载一次.2.Class类对象不是new出来的,而是系统创建的。5.通过Class对象可以完整的得到一个类的完整结构。应用场景:多用于配置文件,读取类全路径,加载类。应用场景:通过创建好的对象,获取Class对象。6.Class对象是存放在堆的。
2025-12-16 16:18:27
291
原创 Java_反射机制
2.加载完类之后,在堆中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象包含了类的完整结构信息,通过这个对象得到类的结构.这俄格Class对象就像一面镜子,透过这个镜子看到类的结构,所以,形象的称之为:反射。3.参数值为true表示 反射的对象在使用时取消访问检查,提高反射的效率,参数值为false则表示反射的对象执行访问检查。3.java.lang.reflect.Field:代表类的成员变量,Field对象表示某个类的字段(成员变量)2.在运行时构造任意一个类的对象。
2025-12-11 15:09:25
402
原创 Java_网络上传文件与netstat指令
然后读取客户端发送的第二行数据,如果是"hobby",则回复"编写java程序",否则打印"你说啥呢"。读取客户端发送的第一行数据,如果是"name",则回复"我是.....",否则打印"你说啥呢"。发送"name",然后接收服务端的回复,应该是"我是.......",否则打印"你说啥呢"。发送"hobby",然后接收服务端的回复,应该是"编写java程序",否则打印"你说啥呢"。4.服务器端接收到客户端发送的图片,保存到src下,发送"收到图片"再退出。5.客户端接收到服务端发送的"收到图片",再退出。
2025-12-02 22:00:45
250
原创 Java_TCP网络通信编程
3.客户端连接到服务器端,发送"hello,server",并接收服务器端回发的"hello,client",再退出。3.客户端连接到服务器端,发送"hello,server",并接收服务器端回发的"hello,client",再退出。4.服务器端接收到客户端发出的信息,输出,并发送"hello,client"再退出。4.服务器端接收到客户端发出的信息,输出,并发送"hello,client"再退出。3.客户端连接到服务器端,发送"hello,server",然后退出。1.编写一个服务器端,和一个客户端。
2025-11-24 17:43:16
400
原创 Java_网络编程_InetAddress类与Socket类
4.获取InetAddress对象的地址 getHostAddress。4.Socket允许程序把网络链接当成一个流,数据在两个Socket间通过IO传输。3.获取InetAddress对象的主机名 getHostName。1.套接字(Socket)开发网络应用程序被广泛采用,以至于称为事实上的标准。5.一般主动发起通信的应用程序属客户端,等待通信请求的为服务端。2.通信的两端都要有Socket,是两台机器间通信的端点。4.基于Socket的TCP编程。UDP编程(不可靠)
2025-11-24 15:53:57
333
原创 Java_网络编程基础相关概念
TCP/IP(Transmission Control Protocol / Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议,Internet国际互联网络的基础,简单地说,就是有网络层的IP协议和传输层的TCP协议组成的。在网络编程中,数据的组织形式,就称为协议,协议的目的就是为了保证两个程序之间能够通讯,自定义的协议在TCP/IP协议之上。广域网:覆盖范围最大,可以覆盖全国,甚至全球,万维网是广域网的代表。
2025-11-24 13:48:54
460
原创 Java_Properties
store:将Properties中的键值对存储到配置文件(如果实现已经存在,就相当于覆盖,在idea中,保 存信息到配置文件,如果含有中文 ,会存储为unicode码。setProperty(key,value):设置键值对到Properties对象(如果没有,就相当于添加)3.使用Properties类完成对mysql.properties的读取,并修改某个key-val。load:加载配置文件的键值对到Properties对象。getProperty(key):根据键获取值。
2025-11-22 17:12:13
401
原创 Java_InputStreamReader与OutputStreamWriter
1.编程 将字节流FileInputStream转换成字符流InputStreamReader,对文件进行读取(按照UTF-8格式),进而再包装成BufferedReader。1.InputStreamReader:Reader的子类,可以将InputStream字节流包装成Reader字符流。3.当处理纯文本数据时,如果使用字符流效率更高,并且可以有效解决中文问题,所以建议将字节流转换成字符流。4.可以在使用时指定编码格式(如 UTF-8,GBK,GB2312,ISO8895-1 等)
2025-11-22 00:14:14
183
原创 Java_对象处理流ObjectInputStream与ObjectOutputStream
4)序列化对象时,默认将里面所有属性都进行序列化,但除了static或transient修饰的成员。6)序列化具备可继承性,也就是如果某类已经实现了序列化,则它的所有子类也已经默认实现了序列化。2)要求实现序列化和反序列化对象,需要实现Serializable。1.功能:提供了对基本类型或对象类型的序列化和反序列化的方法。5)序列化对象时,要求里面属性的类型也需要实现序列化接口。2.反序列化就是在恢复数据时,恢复数据的值和数据类型。1.序列化就是在保存数据时,保存数据的值和数据类型。
2025-11-21 23:02:59
265
原创 Java_字节处理流BufferedInputStream与BufferedOutputStream
BufferedOutputStream是字节流,实现缓冲的输入流,可以将多个字节写入底层输出流中,而不必对每次字节写入调用底层系统。BufferedInputStream是字节流,在创建BufferedInputStream时,会创建一个内部缓冲区数组。编程完成图片/音乐的拷贝。
2025-11-21 20:23:14
459
原创 Java_字符处理流BufferedReader与BufferedWriter
2.处理流(也叫包装流)是"链接"在已存在的流(节点流或处理流)之上,为程序提供更为强大的读写功能.如BufferedReader,BufferedWriter。2.处理流(也叫包装流)包装节点流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入输出。2.操作的便捷:处理流可能提供了一系列便捷的方法来一次输入输出大批量的数据,使用操作更加灵活方便。1.节点流可以从一个特定的数据源读写数据,如FileReader,FileWriter。1.节点流是底层流/低级流,直接跟数据源相接。
2025-11-21 16:55:22
185
原创 Java_IO流原理及流的分类
1.I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理数据传输,如读/写文件,网络通讯等。3.Java.io报下提供了各种"流"类和接口,用以获取不同种类的数据,并通过方法输入或输出数据。1)Java的I/O流共涉及40多个类,实际上非常规则,都是从如上四个抽象基类派生的。2.Java程序中,对于数据的输入/输出操作以"流"(Stream)"的方式进行。4.输入input:读取外部数据(磁盘,光盘等存储设备的数据)到程序(内存)中。按流的角色不同分为:节点流 ,处理流/包装流。
2025-11-21 00:09:48
125
原创 Java_FileReader与FileWriter
2)read:每次读取单个字符,返回该字符,如果到文件末尾返回-1 (这个是字符不是字节,所以可以用来读取汉字)2)new String(char[],off,len):将char[]的指定部分转换为String。3)read(char[]):批量读取多个字符到数组,返回读取到的字符数,如果到文件末尾返回-1。1))new FileWriter(File/String):覆盖模式,相当于流的指针在首端。5)write(char[],off,len):写入指定数组的指定部分。
2025-11-21 00:05:15
193
原创 Java_FileInputStream与FileOutputStream
2.BufferedInputStream:缓冲字节输入流。3.ObjectInputStream:对象字节输入流。InputStream抽象类是所有类字节输入流的超类。1.FileInputStream:文件输入流。InputStream:字节输入流。
2025-11-20 17:52:47
259
原创 Java_线程基础
案例:创建一个子线程,每隔1s 输出hello,输出20次,主线程每隔一秒,输出hi,输出20次.要求:两个线程同时执行,当主线程输出5次后,就让子线程运行完毕,主线程再继续。可知,run() 就是一个普通方法,没有真正启动一个线程,就会有线程阻塞的问题,即要先把run() 执行完毕,才继续向下执行,就不是多线程了(相当于是单线程,串行化的执行)编写一个程序,创建两个线程,一个线程每隔一秒输出"hello,world",输出10次,退出,一个线程每隔一秒输出"hi",输出5次,退出。
2025-11-17 17:14:25
1328
原创 Java事件处理机制
2.事件:事件就是承载事件源状态改变时的对象,比如当键盘事件,鼠标事件,窗口事件等等,会生成一个事件对象,该对象保存着当前事件很多信息,比如KeyEvent对象有含义被按下键的Code值.Java,awt.event包和javax.swing.event包中定义了各种事件类型。Java事件处理是采取"委派事件模型",当事件发生时,产生事件的对象,会把此"信息"传递给"事件的监听者"处理,这里所说的"信息"实际上就是java.awt.event事件类库里某个类所创建的对象,把它称为"事件的对象"
2025-11-15 23:24:05
333
原创 Java绘图技术
在屏幕显示的时候,程序会自动地调用paint()方法来绘制组件。1.paint(Graphics g)绘制组建的外观。2.repaint()刷新组件的外观。3.repaint函数被调用。1.窗口最小化,再最大化。2.窗口的大小发生变化。
2025-11-15 20:44:37
322
原创 Java_泛型的继承和通配符
super A>:支持A类以及A类的父类,不限于直接父类,规定了泛型的下限。extends A>:支持A类以及A类的子类,规定了泛型的上限。> :支持任意泛型类型。1)泛型不具备继承性。
2025-11-14 23:10:10
390
原创 Java_自定义泛型类/接口/方法
3)public void eat(E e){ } 修饰符后没有<T,R......> 则eat() 不是泛型方法,而是使用了泛型。4)泛型类的类型,是在创建对象时确定的(因为创建对象时,需要指定确定类型)1)接口中,静态成员也不能使用泛型(这个和泛型类规定一样)5)如果在创建对象时,没有指定类型,默认为Object。1)泛型方法,可以定义在普通类中,也可以定义在泛型类中。2)泛型接口的类型,在继承接口或实现接口时确定。1)普通成员可以使用泛型(属性,方法)3)静态方法(属性)中不能使用类的泛型。
2025-11-14 22:37:45
337
原创 Java_泛型入门
3)Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常,同时,代码更加简洁,健壮。4)泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型。说明:1,其中,T,K,V 不代表值,而是表示类型 2.任意字母都可以,常用T表示,是Type的缩写。1)泛型又称参数化类型,是Jdk5.0出现的新特性,解决数据类型的安全性问题。默认给它的泛型就是<E>,E就是Object ,即。
2025-11-14 21:12:43
160
原创 Java_Collections工具类
2)Object max(Collection,Comparator):根据 Comparator 指定的顺序,返回给定集合中的最大元素。4)sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序。5)swap(List,int,int):将指定list集合中的i 处元素和j 处元素进行交换。1)Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素。1)reverse(List):反转List元素中的顺序。
2025-11-08 22:16:03
169
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅