Java
文章平均质量分 50
grt要一直一直努力呀
好好工作 好好生活 好好爱人
展开
-
剑指 Offer 38. 字符串的排列
先固定第一位有n种,然后第二位有(n - 1)种,依次类推。当字符串中存在重复字符时,排列中也会出现重复的方案。为排除重复方案,需在固定某位字符时,保证 “每种字符只在此位固定一次” ,即遇到重复字符时不交换,直接跳过。从 DFS 角度看,此操作称为 “剪枝” 。中间交换递归方面不太明确。...原创 2022-06-28 14:36:54 · 104 阅读 · 0 评论 -
redis客户端
Redis安装完成后就自带了命令行客户端:redis-cli,使用方式如下:其中常见的options有:其中的commonds就是Redis的操作命令,例如:不指定commond时,会进入的交互控制台:选择库1,select 1设置键值对 set name jack查找name键对应的值 get nameredis默认有16个库,库名也是无法更改的。......原创 2022-06-28 09:52:49 · 40 阅读 · 0 评论 -
Java http响应消息
文章目录响应消息响应行响应头响应体response对象案例:重定向案例:输出字符数据案例:输出字节数据案例:验证码servletContext对象响应消息请求消息:浏览器发送给服务器端的数据响应消息:服务器端发送给浏览器的消息响应消息的数据格式1、响应行2、响应头3、响应空行4、响应体响应行组成:协议/版本号 状态码 状态码的描述状态码都是3位数字分类:1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码2xx:成功。代表:2003xx:重定向。代原创 2022-02-09 16:34:18 · 371 阅读 · 0 评论 -
Java http
Http:超文本传输协议 定义了客户端和服务器端通信时,发送数据的格式。特点:是基于TCP/IP的高级协议。默认端口号是80。例如http://www.baidu.com:80.一次请求对应一次响应。无状态的协议:每次请求之间是相互独立的,不能交互数据。请求消息的数据格式1、请求行2、请求头3、请求空行4、请求体...原创 2022-02-08 16:24:22 · 333 阅读 · 0 评论 -
Spring 笔记
是分层的Java SE/EE应用full-stack轻量级开源的框架,可以解决企业应用开发的复杂性。以**Ioc反转控制(把创建对象的过程交给Spring进行管理)和AOP面向切面编程(不修改源代码进行功能增强)**为内核。笔记1笔记2笔记3笔记4笔记5代码目录入门1、下载jar包2、创建一个普通的Java项目3、导入jar包。Beans、Core、Context、Expression。4、创建类和方法package com.edu.spring5;public class原创 2022-02-07 21:00:21 · 149 阅读 · 0 评论 -
Java servlet
servlet:运行在服务端的小程序。一些类没有主方法,是使用tomcat来执行的。所以这些类必须具备一些规则,才能被tomcat来识别执行。servlet本质上就是一个接口,定义了java类被tomcat识别的规则。...原创 2022-02-06 20:18:18 · 302 阅读 · 0 评论 -
java Spring JDBC
是由Spring框架对JDBC的简单封装。提供了一个JDBCTemplate简化了JDBC的开发。步骤:1、导入jar包。2、创建jdbcTemplate对象,依赖于数据源DataSource。3、调用方法完成CRUD的操作。update()方法,执行DML语句。queryForMap()方法,查询结果,将结果封装为map集合。注意查询的结果集长度只能为1。queryForList()方法,查询结果,将结果封装为list集合。将每一个结果封装为map,再封装到list集合中。query()原创 2022-02-05 18:10:45 · 198 阅读 · 0 评论 -
Java数据库连接池
概念:是一个容器(在Java中就是一个集合),存放数据库连接的容器。当系统初始化好之后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。不像之前的代码一样,每次开始前都建立一个连接,然后结束时close,释放连接。好处:节约资源、高效。实现:标准接口:DataSource javax.sql包下的。getConnection方法.一般由数据库厂商来实现。两种数据库连接池实现技术C3P0、Druid。...原创 2022-02-05 11:32:36 · 1320 阅读 · 0 评论 -
Java JDBC操作MySQL
DBMS里有多个数据库,每个库中又有多张表。客户端有命令终端(DoS)、SQLyog、Java等。Mysql数据库、普通表的本质仍然是文件。表的一行称为一条记录,对应Java中的一个对象。SQL语句的分类为1、DDL数据定义语言 create 表、库2、DML 数据操作语言 insert、delete、update3、DQL 数据查询语言 select4、DCL 数据控制语言 管理数据库 grant revoke(撤销权限)备份数据库备份数据库命令行为:在DoS中执行mysqldump原创 2022-01-30 23:21:47 · 1845 阅读 · 0 评论 -
JavaWeb
XML是可扩展的标记性语言。作用:用来保存数据,而且数据具有自我描述性;可以做为项目或者模块的配置文件;还可以作为数据传输格式。原创 2022-01-30 21:38:35 · 631 阅读 · 0 评论 -
Java网络编程
java.net包下提供了一系列类与接口,用于网络通信。IP地址:用于唯一的标识主机。组成为网络地址+主机地址。查看ip地址:ipconfigIPV4是用4个字节(32位)表示。每个字节的范围是0~255.IPV4最大的问题是网络地址资源有限,限制了互联网的应用和发展。本机地址:127.0.0.1要进行网络编程必须知道对方的IP地址。端口用于标识计算机上某一个特定的服务。范围为0~65535.ssh为22,ftp为21,smtp为25,http为80.网络通信协议TCP/IP.,协议是通信原创 2022-01-26 21:56:22 · 1192 阅读 · 0 评论 -
Java 文件字符流、节点流、处理流
FileReader与FileWriter是文件字符流。在使用write方法时,一定要注意是覆盖还是追加。另外,在FileWriter使用后,必须要关闭close,或者刷新flush,否则写入不到指定的文件。FileReaderimport org.junit.Test;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class FileRead原创 2022-01-25 18:43:20 · 500 阅读 · 0 评论 -
Java 文件
文件就是保存数据的地方。文件在程序中是以流的形式来操作的。输入流:数据从数据库(文件)到程序(内存)的路径。输出流:数据从程序(内存)到数据库(文件)的路径。创建文件new File(String pathname)根据路径创建一个File对象new File(File parent,String child)根据父目录文件+子路径创建new File(String parent,String child)根据父目录+子路径创建创建新文件 createNewFileimport org.ju原创 2022-01-21 23:11:02 · 706 阅读 · 0 评论 -
Java Collections工具类
可以操作Set、List和Map等集合的工具类,里面提供了一系列静态方法对集合元素进行查询、排序和修改等操作。import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class Collections_01 { public static void main(String[] args) { ArrayList arrayList = new Arr原创 2022-01-21 10:50:17 · 287 阅读 · 0 评论 -
Java Map接口
特点1、用于保存具有映射关系的数据 key-value(双列元素)。2、key和value可以是任何引用数据类型。3、Map中的key不可以重复。当有相同的key时,就等价于替换。4、Map中的value是可以重复的。5、Map中的key和value都可以为空。但key只能有一个空,而value可以有多个空。6、通常String类作为Map的key。7、key和value是一一对应关系,通过key总能找到对应的value。8、一对key-value是放在一个Node中的,Node实现了Ent原创 2022-01-20 20:35:49 · 419 阅读 · 0 评论 -
Java包装类Wrapper
针对8种基本数据类型相应的引用类型。——包装类。Boolean、Character、Byte、Short、Integer、Long、Float、Double。具有类的特点,可以调用类中的方法。他们都是Number的子类。包装类和基本数据类型的转换。装箱:基本类型——>包装类型。反过来为拆箱。jdk5之后,就可以实现自动装箱和拆箱了。...原创 2022-01-18 14:50:11 · 295 阅读 · 0 评论 -
maven自动化创建工具
maven是一个项目管理工具。没有使用maven管理的项目1、很多模块,模块之间有关系,手工管理比较繁琐。2、需要很多第三方功能,需要很多的jar文件,需要手工从网络上获取各个jar包。3、需要管理jar的版本。4、管理jar文件之间的依赖maven可以管理和自动下载jar文件,管理jar的依赖和版本,编译程序,把java编译为class,测试代码是否正确,打包文件成jar文件或者war文件。项目的构建是面向过程的,是一些步骤,完成项目代码的编译、测试、运行、打包、部署等。maven可以执行测原创 2022-01-14 18:22:40 · 173 阅读 · 0 评论 -
Java 泛型generic
语法import java.util.ArrayList;public class Generic_01 { public static void main(String[] args) { //当如下写时,arraylist中存放的元素只能是Dog类型 ArrayList<Dog> arrayList = new ArrayList<Dog>(); arrayList.add(new Dog("Mary",22));原创 2022-01-10 20:00:35 · 391 阅读 · 0 评论 -
Java set接口方法
set接口基本介绍:1、无序的,添加和取出的顺序不一致,没有索引。2、不允许重复元素,所以最多包含一个null。3、JDK API中set接口的常见实现类有 HashSet和TreeSet。由于是Collection接口的子接口,所以可以使用Collection的方法。在遍历元素的时候,可以使用迭代器,增强for循环,但是不能使用索引的方式来获取元素。取出的顺序不是添加的顺序,但顺序是固定的。import java.util.HashSet;import java.util.Iterato..原创 2022-01-09 11:57:03 · 435 阅读 · 0 评论 -
Java List接口方法
List集合类中元素是有序的,即添加顺序和取出顺序是一致的,且可以重复。List的底层是一个数组,集合中的每个元素都有对应的索引。List接口的实现类有很多,常用的有ArrayList、LinkedList和Vector。package com.edu.list_;import java.util.ArrayList;import java.util.List;/** * @auther */public class List_01 { public static void ma原创 2022-01-07 19:33:08 · 910 阅读 · 0 评论 -
Java final关键字
final可以修饰类、属性、方法和局部变量。1)当不希望类被继承时,可以使用final修饰。2)当不希望父类的某个方法被子类重写时,可以使用final关键字修饰。3)当不希望类的某个属性的值被修改,可以使用final修饰。4)当不希望某个局部变量(除了成员变量外的变量)被修改,可以使用final修饰。使用final修饰的属性又称为常量,命名时一般要大写,并且定义时,必需赋初值。赋初值的位置可以为定义时,可以在构造器中,可以在代码块中。/** * @auther */public clas原创 2022-01-05 11:04:27 · 145 阅读 · 0 评论 -
Java main方法与代码块
main方法main方法是Java虚拟机调用的。也就是说必须要是public。在main方法中,可以直接调用main方法所在类的静态方法或静态属性,,但是不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象访问类中的非静态成员。在IDEA下,如何给main方法args字符串数组传参数/** * @auther */public class Hello { public static void main(String[] args) { for原创 2022-01-03 11:59:27 · 421 阅读 · 1 评论 -
Java类变量与类方法
类变量引入:如果把变量写入main方法中,体现不出面向对象编程的思想。当某一个类所有对象都共享同一个变量时,可以考虑定义类变量,例如定义学生类,统计所有学生交多少钱。可以将费用定义为类变量。/** * @auther */public class ChildGame { public static void main(String[] args) { Child c1 = new Child("Mary"); c1.join(); Child原创 2022-01-02 20:28:47 · 428 阅读 · 2 评论 -
Java finalize方法
当对象被回收时,系统自动调用该对象的finalize方法。子类可以重写该方法,做一些释放资源的操作。当某个对象没有任何引用时,则jvm就认为这个对象是一个垃圾对象。就会使用垃圾回收机制来销毁该对象,在销毁该对象前,会调用finalize方法。直接输入就可以生成finalize方法/** * @auther */public class Finalize_ { public static void main(String[] args) { Person1 p1 = new原创 2021-12-29 22:24:23 · 455 阅读 · 2 评论 -
Java Object类的使用
Object类是所有Java类的根父类。如果没有继承extend父类,默认的父类是object。Object类中的属性和方法就具有通用性。equals比较两个对象是否相等。原创 2021-12-29 21:11:34 · 369 阅读 · 0 评论 -
Java枚举
Java枚举是一个特殊的类,常用来表示一组常量。用enum关键字来定义,各个变量之间用逗号来分隔。public class Enum_01 { public static void main(String[] args) { Color c1 = Color.green; System.out.println(c1); }}enum Color{ red,blue,green,blank}greenProcess finished w原创 2021-12-25 17:29:54 · 539 阅读 · 0 评论 -
Java集合Collection接口
集合可以动态的保存任意多个对象。提供了一系列方便操作对象的方法,如增删改查。集合主要是两组,一组是单列集合,另一组是双列集合(key-value形式的)。Collection接口的两个重要的子接口,List和Set都是单列集合。Map接口的实现子类,是双列集合。常用基本方法import java.util.ArrayList;import java.util.Collection;import java.util.List;public class Collection_01 { p原创 2021-12-25 15:45:41 · 283 阅读 · 0 评论 -
Java抽象类
当父类的某些方法,需要声明,但是又不确定如何实现时,可以将其声明为抽象方法,那么这个类就是抽象类。当一个类中存在抽象方法时,需要将该类声明为abstract。public class Abstract01 { abstract class Animal { String name; public Animal(String name) { this.name = name; } public abstra原创 2021-12-19 19:15:47 · 301 阅读 · 0 评论 -
Java多态
多态是指方法或对象具有多种形态,是建立在封装和继承的基础之上。重写与重载都体现了方法的多态。对象的多态1)一个对象的编译类型原创 2021-12-19 10:12:58 · 410 阅读 · 0 评论 -
Java 方法重写/覆盖override
override就是指子类中有一个方法,和父类中的某个方法名称、返回类型和参数一样,那么就说子类的这个方法覆盖了父类的方法。父类public class Animal { public void cry(){ System.out.println("动物在叫~~"); }}子类public class Dog extends Animal{ //子类的cry方法与父类的cry方法 名称、返回类型和参数完全一致 public void cry(){原创 2021-12-17 19:29:46 · 469 阅读 · 0 评论 -
Java super关键字
super代表父类的引用,用于访问父类的属性、方法、构造器。语法为super.属性super.方法原创 2021-12-17 16:47:08 · 392 阅读 · 0 评论 -
Java异常处理
package com.edu.Exception_;public class Exception_01 { public static void main(String[] args) { int num1 = 10; int num2 = 0; int res = num1/num2; System.out.println(res); }}Exception in thread "main" java.lang.原创 2021-12-16 15:40:39 · 369 阅读 · 0 评论 -
java中的String类
创建String对象方法一:直接赋值方法二:使用构造器package com.hspedu.String_;public cl.原创 2021-12-14 22:05:37 · 373 阅读 · 0 评论 -
Java中Arrays类
Arrays类中包含了一系列的静态方法,用于管理和操作数组。原创 2021-12-14 21:20:52 · 448 阅读 · 0 评论 -
Java中的Math类
Math类包含用于执行基本数学运算的方法,如指数、对数、平方根、三角函数等。package com.hspedu.math_;public class MathMethod01 { public static void main(String[] args) { //abs取绝对值 int abs = Math.abs(-9); System.out.println(abs); //pow求幂 double pow原创 2021-12-13 21:08:22 · 136 阅读 · 0 评论 -
Java接口
新建一个接口的方法:选择新建一个Java类,然后选择Interface。package com.hspedu.interface_;public interface UsbInterface { public void start(); public void stop();}package com.hspedu.interface_;public class Camera implements UsbInterface{ @Override pub原创 2021-12-13 20:11:52 · 332 阅读 · 0 评论 -
Java继承
概述有的类属性和方法是相同的,可以使用继承解决代码复用的问题。当多个类存在相同的属性和方法时,可以从这些类中抽象出父类,在父类(基类)中定义这些相同的属性和方法,所有的子类(派生类)不需要重新定义这些属性和方法,只需要extends来声明继承父类即可。继承的基本语法:class 子类 extends 父类{}入门案例package com.extend_.improve;//是pupil和graduate的父类public class students { //下面是共有的属性和共原创 2021-12-11 11:36:54 · 168 阅读 · 0 评论 -
Java封装
封装的好处:隐藏实现细节,使用者直接调用即可。相当于调用API接口,内部如何实现的不用考虑。可以对数据进行验证,保证安全合理。封装的实现步骤1) 将属性进行私有化,外部就不能直接修改属性。2)提供一个公共的set方法,用于对属性判断并赋值public void setXxx(类型 参数名){属性 = 参数名;}3)提供一个公共的get方法,用于获取属性的值public 数据类型 getXxx(){return xx;}案例:设置一个小程序,不能随便查看人的年龄,工资等隐私。并对原创 2021-11-28 20:43:34 · 189 阅读 · 0 评论 -
Java访问修饰符
Java中提供了4种访问修饰符,用于控制方法和属性的访问范围。公开级别 public 对外公开受保护级别 protected修饰 对子类和同一个包中的类公开默认级别 没有修饰符号 向同一个包中的类公开私有级别 private修饰 只有类本身可以访问 不对外公开访问级别访问控制修饰符同类同包子类不同包公开public√√√√受保护protected√√√×默认没有修饰符√√××私有private√×××原创 2021-11-28 15:11:28 · 244 阅读 · 0 评论 -
Java包
包有三大作用区分相同名字的类当类很多时,可以很好的管理类控制访问范围包的基本语法package 包名包的本质就是创建不同的文件夹来保存类文件。入门案例在不同的包的下面创建Dog类IDEA下创建包的方法package com.use;import com.xiaoming.Dog;public class test { public static void main(String[] args) { Dog d1 = new Dog();原创 2021-11-28 11:40:29 · 156 阅读 · 0 评论