Java
文章平均质量分 90
介绍关于Java方面的相关知识,仅限于学习使用,其参考的课程是http://www.atguigu.com/download_detail.shtml?v=129中的Java部分
桜キャンドル淵
凑个整,就1024吧
展开
-
C++【算法】【KMP算法】
对于传统的暴力匹配算法,我们是在匹配主字符串和子串的时候,一旦匹配不上,子串就回退到最初位置,主串也回退到与子串开始比较的位置。这样的算法的时间复杂度会到达O(M*N),也就是主串的长度乘以子串的长度这里我们可以尝试让我们的主串中的指针不再回退,同时我们子串的指针在匹配的时候也回退到指定的位置,而不是开头的位置。这里我们就需要用到我们的KMP算法KMP算法的时间复杂度O(m+n)原创 2022-10-26 22:55:02 · 2114 阅读 · 0 评论 -
JAVA【Maven】【继承】【聚合】【创建web工程】
由于非 compile 范围的依赖信息是不能在“依赖链”中传递的, 所以有需要的工程只能单独配置。依赖管理和依赖的区别是依赖管理仅仅是父工程管理一下子工程中的包版本父工程本身并没有引入这个jar包,二依赖就是父工程引入了这个jar包,但是父工程不用,而是让子工程去用。在我们的子工程中要继承父工程 ,同时原先的写在子工程里面的junit的版本号也可以注释掉了。下面我们使用父工程将我们的当前工程中的全部的Junit的版本统一为4.9。就是直接在父工程中声明依赖哪些软件包,然后子工程依赖父工程,...原创 2022-08-11 15:40:52 · 112 阅读 · 0 评论 -
JAVA【Maven中的核心概念】
此外, Maven 的插件机制是完全依赖 Maven 的生命周期的,因此理解生命周期至关重要。如果是test的话就只有test中的代码才能够访问,注意,我们在部署程序到服务器上的时候是不将测试程序部署上去的,只会将主程序部署上去,所以部署到Tomcat服务器上运行时不会放在WEB-INF的lib目录下。从一个插件可以完成多个功能,如下面的主程序的编译和测试程序的变异都是交给maven-compiler-plugin去完成的,这个插件想要完成的功能就称为这个插件的目标,也就是这个插件存在的意义。...原创 2022-08-11 12:23:01 · 234 阅读 · 0 评论 -
JAVA【Maven中的编译、测试、打包、安装、清除操作】
编译测试程序并运行生成报告,将测试程序的.java代码编译成.class文件,再执行测试程序,生成最终报告。发现我们这个对应的目录下多了一个hello的jar文件,这就是我们刚刚的工程生成的jar包。将编译测试的结果全部清理掉,注意到我们左边的文件目录下刚刚的测试文件全部都没有了。install是安装,将当前写好的项目打成jar包并且导入到Maven仓库中。通过一开始我们的配置文件中的坐标信息找到我们刚刚安装的jar包。使用Lifecycle中的Maven提供给我们的功能。package是打包。...原创 2022-08-11 09:35:04 · 1324 阅读 · 1 评论 -
JAVA【Maven的下载和初次使用】
如果说我们现在手头有非常多的jar包,然后有好多好多的项目。我们之前是采用cv大法将我们的jar包复制到每一个项目中。但是这样cv非常地麻烦,并且同一份jar包要被拷贝好几次,这就会导致我们的项目特别臃肿。这个时候我们就可以使用Maven进行统一管理。Maven是相当于是一个仓库,将我们所有的jar包都置于其中。当我们的项目需要用到Maven中的某一个jar包的时候,我们将就可以通过依赖的形式调用这个jar包。(不是把jar包直接复制过去)构建过程的几个主要环节。......原创 2022-08-10 21:18:39 · 371 阅读 · 6 评论 -
JAVA【Apache-DBUtils实现CRUD】
* 自定义ResultSetHandler的实现类*/@Testtry {";//我们自己定义了一个handler并且重写了其中的方法//其实下面的query的返回值,其实就是我们现在这个当前方法的返回值// return new Customer(12, "成龙", "[email protected]", new Date(234324234324L));}}};}}...原创 2022-08-10 09:57:49 · 171 阅读 · 0 评论 -
JAVA【数据库连接池】【MySQL】【c3p0】【DBCP】【Druid】
3.maxIdle:连接池中最大的空闲的连接数,超过的空闲连接将被释放,如果设置为负数表示不限制(默认为8个,maxIdle不能设置太小,因为假如在高负载的情况下,连接的打开时间比关闭的时间快,会引起连接池中idle的个数 上升超过maxIdle,而造成频繁的连接销毁和创建,类似于jvm参数中的Xmx设置)4.minIdle:连接池中最小的空闲的连接数,低于这个数量会被创建新的连接(默认为0,调整为5,该参数越接近maxIdle,性能越好,因为连接的创建和销毁,都是需要消耗资源的;...原创 2022-08-09 23:27:24 · 455 阅读 · 0 评论 -
JAVA【DAO及其实现类】
DAO:Data Access Object访问数据信息的类和接口,包括了对数据的CRUD(Create、Retrival、Update、Delete),而不包含任何业务相关的信息。有时也称作:BaseDAO作用:为了实现功能的模块化,更有利于代码的维护和升级。...原创 2022-08-09 11:00:24 · 2063 阅读 · 0 评论 -
JAVA【数据库事务】【MySQL】
事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。用zhuyuan账户将我们cc的余额改成5000,(没有提交),这时再用root用户查询我们的cc的账户余额,就是5000了(这就是脏读)因为在结束的时候我们的下面那个test也没有提交committ,而连接也没有关,所以刚才的没有提交的临时数据是无效的。只有我们的root用户提交了,然后这就代表着root用户的当前事务关闭了,然后再次查询就是3000了。...原创 2022-08-08 22:38:43 · 947 阅读 · 0 评论 -
JAVA【操作BLOB类型字段】【批量操作】
MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。插入BLOB类型的数据必须使用PreparedStatement,因为BLOB类型的数据无法使用字符串拼接写的。MySQL的四种BLOB类型(除了在存储的最大信息量上不同外,他们是等同的)...原创 2022-08-08 10:54:19 · 2042 阅读 · 0 评论 -
JAVA【JDBC】【使用PreparedStatement操作数据库】
这里我们是先连接到了我们上述的数据表,然后将数据表中的user和password的内容独取出来,然后编成sql语句,交给我们的mysql,并且如果查询失败就返回用户名不存在或者密码错误,如果查询成功就返回登陆成功。针对于不同的表我们想要获取到的查询数据的结构一定是不同的,所以我们需要在查询的时候将我们查询的结构传入,然后利用反射机制构造出对应的对象,然后将对应的对象返回。原来我们想表达的是 xx and xx是一个并且的关系,也就是我们的use和password同时正确的时候才返回结果。...原创 2022-08-07 21:00:05 · 4404 阅读 · 0 评论 -
JAVA【idea中的@test使用scanner无法从键盘输入的问题】
需要修改配置文件,点击帮助中的编辑自定义vm选项。就是一直在加载,但是我的键盘无法输入参数。注意:不重启这些配置无法生效。然后就可以愉快地输入和读取了。在最后一行加入以下代码。.........原创 2022-08-07 11:48:06 · 1880 阅读 · 5 评论 -
JAVA【JDBC】
java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现。...原创 2022-08-07 10:41:57 · 313 阅读 · 0 评论 -
JAVA【JAVA9&10&11新特性】
从Java9这个版本开始,Java的计划发布周期是6个月,下一个Java的主版本将于2018年3月发布,命名为Java18.3,紧接着再过六个月将发布Java18.9。模块化系统jShell命令多版本兼容jar包接口的私有方法钻石操作符的使用升级语法改进try语句String存储结构变更便利的集合特性of()增强的StreamAPI全新的HTTP客户端APIDeprecated的相关APIjavadoc的HTML5支持。...原创 2022-07-28 23:22:22 · 900 阅读 · 0 评论 -
JAVA【JAVA8的其他新特性】
如何理解上面的5,就是说下面我们的情况一中我们的Consumer中的形参列表和返回值同我们PrintStream中的voidprintln是一样的。情况二中的get()和getName()的形参列表和返回值也是相同的。换句话说,方法引用就是Lambda表达式,也就是函数式接口的一个实例,通过方法的名字来指向一个方法,可以认为是Lambda表达式的一个语法糖。Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。...原创 2022-07-27 23:37:51 · 70 阅读 · 0 评论 -
JAVA【反射机制】
Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于ReflectionAPI取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为反射。1、动态语言是一类在运行时可以改变其结构的语言。......原创 2022-07-26 15:49:01 · 308 阅读 · 4 评论 -
JAVA【网络编程】
Java是Internet上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在Java的本机安装系统里,由JVM进行控制。并且Java实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。...原创 2022-07-25 19:01:23 · 212 阅读 · 0 评论 -
JAVA【IO流】
下面我们创建了三个file对象,但是这仅仅是三个对象,并不代表者我们的磁盘中就存在着这样的路径。这是我们原先zhuyuan.txt文件中的内容。这是我们的qianying.txt中的内容。这是执行完我们下面的代码之后的结果。以下的路径需要真实存在才能够读取。......原创 2022-07-23 23:12:26 · 88 阅读 · 1 评论 -
JAVA【泛型】
集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。Collection,List,ArrayList这个就是类型参数,即泛型。//在集合中使用泛型之前的情况@Test//需求。...原创 2022-07-23 19:36:41 · 127 阅读 · 0 评论 -
JAVA【集合】
Java集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组。*1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器。*说明此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)**2.1数组在存储多个数据方面的特点*>一旦初始化以后,其长度就确定了。*>数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。*比如int[]arr1;......原创 2022-07-21 23:01:35 · 116 阅读 · 0 评论 -
JAVA【枚举类】【注解】
如何自定义注解参照@SuppressWarnings定义*①注解声明为@interface*②内部定义成员,通常使用value表示*③可以指定成员的默认值,使用default定义*④如果自定义注解没有成员,表明是一个标识作用。如果注解有成员,在使用注解时,需要指明成员的值。自定义注解必须配上注解的信息处理流程(使用反射)才有意义。自定义注解通过都会指明两个元注解1.定义新的Annotation类型使用@interface关键字}...原创 2022-07-21 11:08:10 · 187 阅读 · 0 评论 -
JAVA【常用类】【比较器】【system类】【Math类】
当元素的类型没有实现java.lang.Comparable接口而又不方便修改代码,或者实现了java.lang.Comparable接口的排序规则不适合当前的操作,那么可以考虑使用Comparator的对象来排序,强行对多个对象进行整体排序的比较。二、Comparable接口与Comparator的使用的对比Comparable接口的方式一旦一定,保证Comparable接口实现类的对象在任何位置都可以比较大小。由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实例化该类。...原创 2022-07-20 11:47:59 · 111 阅读 · 0 评论 -
JAVA【常用类】【时间日期】
①ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME②本地化相关的格式。如ofLocalizedDateTime(FormatStyle.LONG)③自定义的格式。如ofPattern(“yyyy-MM-ddhhmmss”)原创 2022-07-19 23:01:03 · 1161 阅读 · 0 评论 -
JAVA【常用类】【字符串相关类】
调用String类的publicStringvalueOf(intn)可将int型转换为字符串相应的valueOf(byteb)、valueOf(longl)、valueOf(floatf)、valueOf(doubled)、valueOf(booleanb)可由参数的相应类型到字符串的转换。Stringsubstring(intbeginIndex)返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。......原创 2022-07-19 12:09:26 · 138 阅读 · 0 评论 -
JAVA【多线程】
1.同步方法依然涉及到同步监视器,只是不需要我们显式的声明2.非静态的同步方法,同步监视器是this静态的同步方法,同步监视器是当前类本身。将之前的线程不安全的饿汉式改为线程安全的直接加上synchronized锁。//方式一效率稍差{}}}}但是上面的代码效率较低。在我们下面的代码中,只要有一个线程进入,并且创建了对象,我们的instance就不再是null,我们后面进来的线程直接返回instance就行。效率就得到了提高。//方式二效率更高}}}}}...原创 2022-07-17 23:04:29 · 195 阅读 · 0 评论 -
JAVA【接口】【代理模式】【工厂设计模式】【JAVA8部分特性】【内部类的使用】
7.接口和接口之间可以继承,而且可以多继承,在下面的代码中CC就成功继承了AA,BB,所以我们的bullet在调用CC接口的时候,需要把AA和BB中定义的方法全部去实现。最后我们在调用的时候,我们首先创建了一个真实的被代理类,然后创建一个代理,将我们被代理的对象传递给代理,紧接着就让代理帮助我们完成了网络连接的工作。简单工厂模式的特点,就是首先将如何创建每一种车的方式写好,然后将我们不同的造车方式告诉我们的工厂,然后我们的工厂会随着我们调用的需要去建造不同的车。抽象工厂模式用来生产不同产品族的全部产品。..原创 2022-07-15 23:06:23 · 298 阅读 · 0 评论 -
JAVA【代码块】【final关键字】【抽象类与抽象方法】【模板方法设计模式】
abstract)抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展,改造,但子类总体上会保留抽象类的行为方式。解决的问题当功能内部的一部分是确定的,一部分是不确定的。>抽象类中一定是有构造器的,便于子类实例化时调用(设计子类对象实例化的全过程)>非静态的代码块内可以调用静态的属性、静态的方法,或非静态的属性,非静态的方法。>静态代码块内只能调用静态的属性、静态的方法,不能调用非静态的结构。>若子类没有重写父类中的所有的抽象方法,则此子类也是一个抽象类。...原创 2022-07-15 16:46:07 · 182 阅读 · 0 评论 -
JAVA【static关键字】【单例模式】【理解main方法的语法】
单例模式优点由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置,产生其他一拉对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性值的修改。在下面的代码中可以看出只要我们其中一个对象修改了static属性的变量,其他对象的同名的static属性的变量都是会发生同步改变的。>非静态的方法中,既可以调用非静态的方法或属性,也可以调用静态的方法或属性。Windows的回收站。..原创 2022-07-15 12:00:59 · 157 阅读 · 0 评论 -
JAVA【object类的使用】+【单元测试方法】+【包装类的使用】
目录一、object类的使用equals tostring 二、单元测试方法的使用 三、包装类的使用基本数据类型转换为包装类 包装类转换为基本数据类型自动装箱与自动拆箱包装类和基本数据类型转换为字符类型将字符类型转换为基本数据类型和包装类 使用代码证明: 包装类和基本数据类型转换为字符类型......原创 2022-07-14 16:56:51 · 296 阅读 · 0 评论 -
JAVA面向对象【三大特性】
目录一、封装性面向对象的特征一:封装与隐藏一、问题的引入二、封装性的体现:三、封装性的体现需要权限修饰符来配合体会四种不同的权限修饰 练习 二、继承性一、继承性的好处:二、继承性的格式:class A extends B{}三、Java中关于继承性的规定四、object类说明方法的重写override/overwrite 例子 Super关键字的使用 举例:测试 子类实例化父类对象的过程三、多态性举例: 为什么要有多态性虚拟方法的调用面向对象的特征一:封装与隐藏一、问题的引入二、封装性的原创 2022-07-13 21:14:10 · 2574 阅读 · 1 评论 -
JAVA面向对象【方法】【构造器】
目录1.方法的重载重载的概念重载的特点重载示例方法的重载(overload)1.定义2.举例:3.判断是否是重载4.在通过对象调用方法时,如何确定某一个指定的方法:2.可变形参的方法可变个数的形参3.方法参数的值传递机制Java的实参值如何传入方法呢?关于变量的赋值: 方法的形参的传递机制,值传递4.递归方法①方法名--->参数列表.........原创 2022-07-13 10:49:48 · 173 阅读 · 0 评论 -
JAVA面向对象编程入门
目录一、Java面向对象学习的三条主线。面向对象的三大特征二、“人把大象装冰箱”Java语言的基本元素:类和对象一.设计类二.类和对象的使用三、属性四、对象的内存解析对象的创建和使用:内存解析类中属性的使用类中方法的声明和使用对象数组的题目:一、理解"万事万物皆对象"二、内存解析说明匿名对象的使用 对比 面向过程(POP)与面向对象(OOP) 1.面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做2.面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。创建类的对象=类的实例化=实例化类原创 2022-07-12 11:38:31 · 329 阅读 · 2 评论 -
JAVA【数组】
目录数组的分类:一维数组的使用:②如何调用数组的指定位置的元素:③如何获取数组的长度 ④如何遍历数组⑤数组元素的默认初始化⑥数组的内存解析多维数组的使用2.二维数组的使用:①二维数组的声明和初始化②如何调用数组的指定位置的元素③如何获取数组的长度 ④如何遍历二维数组⑤数组元素的默认初始化值⑥数组的内存解析 2.数组的常见概念:3.数组的特点:数组是有序排列的。//也是正确的写法//总结:数组一旦初始化完成,其长度就确定了。 练习 多维数组的使用2.二维数组的使用:原创 2022-07-12 08:32:22 · 142 阅读 · 0 评论 -
Java【流程控制】
目录一、流程控制分支结构中的if-else1(条件判断结构)一、三种结构如何从键盘获取不同类型的变量:需要使用scanner类说明注意:如何获取一个随机数:10 -99二、分支结构Switch-case1.格式循环结构循环语句分类for循环结构的使用三、while循环的使用四、do-while循环嵌套循环的使用:如何获取程序执行的时间特殊关键字的使用:break,continue附加:特殊流程控制语句补充:如何衡量一个功能代码的优劣其流程控制方式采用结构化程序设计中规定的三种基流程结构,即:具体实现步骤:原创 2022-07-11 23:36:57 · 128 阅读 · 0 评论 -
JAVA简单入门
目录Java语言的特点jdk(java development kit java开发工具包)jre(java runtime environment java运行环境)JDK=JRE+开发工具集(例如javac编译工具等)一、生成helloworld二、注释(comment)对第一个Java程序进行总结1.Java程序编写-编译-运行的过程2.在一个Java原文件中可以声明多个class,但是,只能最多有一个类声明为public的。3.程序入口是main方法。格式是固定的。4.输出语句:5.每一行的执行语句原创 2022-07-11 22:30:00 · 4507 阅读 · 0 评论