![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
35哥
大龄男自学
展开
-
项目需求:增加订单的完成开关(swith)
一、引言在之前的项目中,需要增加一个swith开关来表明此订单是否已下单,主要怕遗忘了,因此增加一个开关可以展示。项目实际效果二、前端部分1.html部分</el-table-column> <el-table-column label="是否下单" align="center" width="80"> <template slot-原创 2021-01-22 09:53:41 · 256 阅读 · 1 评论 -
自写项目总结(传统CRUD,前端+后端)
项目需求:一个客户管理系统、制作单生成、报价表(xls)生成及下载后端:springboot、springSecurity、Mybatis-Plus、devtools、thymeleaf、poi、lombox、swagger2前端:vue、elementUI采用前后端分离开发,实装将前端build的文件复制到后端static下,使用maven打包成一个单独的jar文件,放到服务器上双击即可运行。一、后端知识点:1.pom.xml文件<?xml version="1.0" en原创 2020-09-07 11:12:04 · 508 阅读 · 0 评论 -
javaweb之Listener
Listener,监听器,javaweb三大组件之一。监听器指监听事件源的属性和方法在特殊情况下触发时监听器执行相应的方法。事件源:被监听的对象,比喻:小偷。事件:被监听对象的属性和方法在特殊情况下触发,比喻:小偷偷东西。监听器:事件源的事件被触发时,监听器执行相应的方法,比喻:警察抓偷东西的小偷。javaweb常见的监听器 监听ServletContext 生命周期监听:ServletContextListener监听器 @WebListener()public cla原创 2020-06-01 20:43:53 · 266 阅读 · 0 评论 -
javaweb之Filter
javaweb的三大组件之一。Filter过滤器(/拦截器)是在URL对一组资源(servlet,html,jsp,css,js,jpg等)的请求之前,当满足条件后发行。接口:Filter default void init(FilterConfig filterConfig)void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)default void destroy()抽象...原创 2020-05-30 22:53:55 · 229 阅读 · 0 评论 -
java之ServletContext
ServletContext,Servlet的上下文环境。1.一个Servlet仅有一个ServletContext对象(单例模式);2.ServletContext的生命周期始于Tomcat启动项目到项目被关闭;3.ServletContext主要用于多Servlet之间的数据传递。ServletContext属于域对象,域对象一般有以下四种: ServletContext PageContext ServletRequest HttpSession所谓域对...原创 2020-05-28 17:03:50 · 201 阅读 · 0 评论 -
javaweb之Servlet
Servlet,javaweb的基础之一。主要作用是处理浏览器的请求。1.接收请求 ServletRequest2.处理请求 编码3.响应请求 ServetResponseServlet接口:public interface Servlet { //生命周期方法,初始化,在Servlet对象创建后执行 void init(ServletConfig var1) throws ServletException; //获取Servlet配置信息 Serv原创 2020-05-28 13:11:58 · 197 阅读 · 0 评论 -
java之自定义事务与ORM(对象关系映射)
需求:创建数据库表与java实体映射,并创建事务保证同时更新或者回滚。 数据库表-tax: 引入的jar包:mysql-connector-java-8.0.19.jar、druid-1.1.22.jar 配置文件:src目录下druid.properties driverClassName=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/testusername=rootpassword=a123.原创 2020-05-22 13:09:01 · 261 阅读 · 0 评论 -
java之数据库连接池
数据库对于每一个Connection对象的创建和关闭,都需要耗费资源,如果Connection连接过多,会造成很多的性能损失,因此,可以通过数据库连接池的方法,程序启动的时候初始化创建一组Connection连接(连接池),在Connection的关闭操作中并不是关闭连接,而是将连接放回池中。常用的连接池有: C3P0 :最早的连接池,已经不更新了。 DBCP :Tomcat内置的连接池,另需要依赖Pool组件 Druid :alibaba的开源组件。 Hi...原创 2020-05-21 14:17:41 · 287 阅读 · 0 评论 -
java之数据库事务
数据库ACID逻辑理解:1.原子性:一个事务是不可能分割的整体,事务内的所有sql语句要么全部成功,要么全部失败;2.一致性:在事务的执行前后,数据的状态要保持一致,保证数据的正确性(转账操作前后的总金额是不会变的);3.隔离性:在并发操作中,各个事务之间的应隔离开互不影响(注:事务之间的影响关系可通过事务的传播来决定);4.持久性:对数据库的修改操作一定会写入数据库(此由各个数据库厂商实现)。重点来讲事务隔离一个事务只有两种操作,读取事务、修改事务,一般有以下四种方式结果:修改原创 2020-05-21 13:16:50 · 248 阅读 · 0 评论 -
java设计模式——装饰者模式
按照设计模式,我们对一个类进行增加,在不改动原有类的基础上进行增加,对修改关闭,对扩展开放(开闭原则)。 类的继承 进行类的增强,传统方法是类的继承,在继承类中进行原有类的增强,但是我们不建议超过2层的继承关系,如果一个类在N次迭代中都需要增加,那就会有N个继承类,这样会使系统过于臃肿。 静态代理增强 静态代理模式,代理类和被代理类均需实现同一个接口,在代理类中增强被代理类的方法。 装饰者模式 装饰者模式,和代理模式比较相似,其实就是代理模式的复用。代理复原创 2020-05-20 14:29:19 · 99 阅读 · 0 评论 -
Annotation自定义注解与代理模式
需求:利用自定义注解实现代理类生成时,按照注解获取被代理类消息接口和两个实现类:interface IMessage{ void send();}class MessageImpl1 implements IMessage { @Override public void send(){ System.out.println("发送消息1");...原创 2020-04-30 10:39:24 · 573 阅读 · 0 评论 -
java之Annotation注解
Annotation:注解,即为标签,标明某个类/方法/域的特征,然后通过反射来进行获取并处理。java中提供有几种元注解:元解解就是指标在标解上的注解,注解定义的时候使用到。@Rentention :注解的生命周期,即存在空间。@Documented//此注解表明是在运行时生效@Retention(RetentionPolicy.RUNTIME)//此注解是注解应用的位置:注解...原创 2020-04-29 15:36:25 · 128 阅读 · 0 评论 -
java设计模式——代理模式
代理模式:代理真实对象,并在其基础上进行方法的扩展,设计模式“开闭原则”的体现,对扩展开放,对修改关闭(不修改原有接口和原有真实类)。代理模式的三种形势: 静态代理模式: 代理类和被代理类均实现同一接口,被代理类通过构造或者方法参数传入代理类中,由代理类进行代理。接口://共同接口interface IMessage{ public void send();}...原创 2020-04-29 10:27:38 · 110 阅读 · 0 评论 -
java之文件夹的复制
public static void copy(File src, File des) throws Exception { //原文件夹要存在 if(src.exists()){ File[] files = src.listFiles(); for(int i = 0 ; i < files.length ...原创 2020-04-23 21:21:12 · 79 阅读 · 0 评论 -
java之管道流
管道流是指在两个线程之间进行IO操作。管道流同样分为字节管道流和字符管道流。此例只采用字节管道流。PipedInputStream:管道输入流重要方法:public synchronized void connect(PipedInputStream snk) throws IOExceptionPipedOutputStream:管道输出流重要方法:public void...原创 2020-04-23 16:34:47 · 304 阅读 · 0 评论 -
java之文件流与转换流
输入流 输出流 文件字节流 FileInputStream FileOutputStream 文件字符流 FileReader FileWriter 文件字节流FileInputStream:文件字节输入流定义 :public class FileInputStream extends InputStream ...原创 2020-04-23 13:41:38 · 3598 阅读 · 0 评论 -
java之基本流
在互联网上传输的实际是属于二进制流,包括在计算机内部一样的是二进制流在传输。在java中有两种最基本流,字节流与字符流 输入流 输出流 字节流 InputStream OutputStream 字符流 Reader Writer 字节输入流定义:抽象类,不能实例化,必须通过其相关子类来实例化//实现了关闭接...原创 2020-04-23 12:08:12 · 313 阅读 · 0 评论 -
java之File文件类
File类的定义:public class File implements Serializable, Comparable<File>File类实现了排序接口,所以File对象可进行排序。常用构造方法://以路径字符串构造File对象public File(String pathname) //以父路径字符串和子文件字符串构造File对象public F...原创 2020-04-23 10:41:52 · 173 阅读 · 0 评论 -
自字二叉树
package a;import com.sun.istack.internal.NotNull;import java.security.PrivateKey;import java.util.*;class Person implements Comparable<Person> ,Cloneable{ private int age; priv...原创 2020-04-14 13:27:02 · 116 阅读 · 0 评论 -
Comparable和Comparator排序接口
Comparable和Comparator:比较器接口。Comparable:内部比较器如果一个类的对象数组需要排序,均需实现此接口,然后在类中重写comparaTo(Object other)方法,这样可以使用 Arrays.sort(T[] objects)进行对象数组的排序。class Person implements Comparable<Person>...原创 2020-04-10 13:35:47 · 113 阅读 · 0 评论 -
AutoCloseable接口
结果AutoCloseable从字面上来看,自动关闭,意思是某些资源获取使用后需要关闭,比如网络资源,file资源,数据库连接等等。正常的情况下,我们使用try{ } finally{ } 在finally中关闭资源,但是有时候我们会忘记关闭资源,或者关闭不完全。从JDK1.7提供了自动关闭接口:public interface AutoCloseable { void...原创 2020-04-02 14:16:11 · 106 阅读 · 0 评论 -
volatile与synchronized区别
多线程正常执行的时候,我们说的共享变量,其实每个线程都会在线程内部创变量的一个副本,线程中操作的其实就是这个副本变量,运算结束后,会同步副本变量与原始变量。volatile :关键字是使用在属性上面,表明线程直接操作原始变量,而不会创建副本变量,因此原始变量和副本变量之间的赋值和同步操作就没了,因此线程运算会加速,但是此属性是不能保证原子的正确性。synchronized:是使用在方法或者...原创 2020-04-02 11:16:48 · 159 阅读 · 0 评论 -
java之waite()和sleep()方法的区别
sleep(Long time),线程休眠一定时间后自动恢复运行;waite(Long timeout),线程等待,如果没有唤醒,则在一定时间后自动唤醒。那这两个可不要以等同呢?都是指线程暂停一定时间。不sleep方法在同步方法内是不会释放锁的,因此,休眠时间到了它会继续运行当前同步方法;waite方法会释放锁,等待时间内没有唤醒则会自动唤醒,唤醒后此线程会置就绪状态,而不是立...原创 2020-04-02 10:24:59 · 487 阅读 · 0 评论 -
java多线程之生产者与消费者模型
需求分析:产品、生产者、消费者,生产者每次生产将产品数+1,消费者每次消费将产品数-1; 消费者消费的时候,产品数要大于0才能被消费; 当商品数大于20的时候,停止生产; 当商品数小于5的时候,停止消费。模拟流程:假如消费者先抢到线程,初始产品数为0,则不会消费。 假如生产者先抢到线程,生产出了第1个商品; 下次消费者抢到线程,判定数量为1大于0,但是其小于5,消费...原创 2020-04-02 10:01:14 · 179 阅读 · 0 评论 -
java线程并发与同步
关于多线程与并发,多线程是指系统在轮流执行不同的方法,由于CPU速度太快,所以我们看起来是同步执行的,这就是所谓的线程并发;线程并发时访问共享变量会引起数据不一致的问题,解决数据的不一致问题就需要用到线程同步。此篇讲线程同步技术。同步技术引出:先来个程序测试不同步的情况:class MyRunable implements Runnable{ private int...原创 2020-04-01 17:09:23 · 128 阅读 · 0 评论 -
线程类Thread的常用方法
类的定义:public class Thread implements Runnable {}构造方法1、无参构造方法public Thread() { init(null, null, "Thread-" + nextThreadNum(), 0);}private static synchronized int nextThreadNum() { ...原创 2020-04-01 10:55:51 · 183 阅读 · 0 评论 -
多线程Thread、Runnable和Callable三种方式的理解
java提供了多线程的类Threadpublic class Thread implements Runnable此类实现了Runnable接口,接口定义如下,它是一个函数式接口,因此可以使用lambda@FunctionalInterfacepublic interface Runnable { public abstract void run();}在Threa...原创 2020-03-31 15:21:16 · 325 阅读 · 0 评论 -
自写双向链表的实现
class ALink<E>{ private class Node<E>{ Node<E> prev; E element; Node<E> next; Node (Node<E> prev,E element,Node<E> next){ ...原创 2020-03-28 17:16:31 · 170 阅读 · 0 评论 -
关于java的lambda表达式和方法引用的理解
java从jdk8开始提供了lambda表达式。lambda表达式意在简化函数式接口。何为函数式接口?原则上是指仅有一个抽象方法的接口。当然从jdk8之后,接口提供了默认方法和静态方法,所以jdk8之后的函数式接口除了一个抽象方法之外也可以增加默认方法和静态方法。@FunctionalInterface注解可选在函数式接口上,如果接口有有两个抽象方法则会编译出错,一般IDE软件会...原创 2020-03-27 11:46:56 · 241 阅读 · 0 评论 -
MyBatis-Plus中关联属性的查询(1对1,1对n,ResultMap)
近来在重构前面写的自用系统,重新写开发文档,接口文档,并使用新的技术。关于Mybatis,新学了Mybatis-Plus(MP)框架,MP框架方便了很多数据库的操作,但是灵活性还是有些不足,特别是关联属性的查询(1对1,1对n)其中并没有封装,试验了一天,终于找到一个解决方法了,此贴也是自我的笔记。实体类Teacher//@Data采用的lombox,可以免写get/set等方法@...原创 2019-12-11 14:49:04 · 2626 阅读 · 0 评论 -
ajax异步请求测试
本测试在springboot中运行。maven依赖引入json<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> </dependency>controll类@RestController("")...原创 2019-07-26 16:44:23 · 304 阅读 · 0 评论 -
关于拦截器Filter的顺序问题和设置类拦截器的位置问题的验证
近来在学习Filter拦截器,@WebFilter中是没有指定顺序的参数,查看了一些博客后再加上验证得到的结果如下:Filter的拦截顺序是Filter类名的字符比较顺序:AFilter>BFilter>CFilter;Filter01>Filter02>Filter03如果几个拦截器的@WebFilter中filterName = "name",nam...原创 2019-06-19 11:02:39 · 949 阅读 · 0 评论 -
关于递归方法和普通循环方法的对比
近来在java交流群看到别个使用递归方法,好奇之下了解了这方面的知识。递归方法:就是方法体调用自身方法的的一种算法,递归方法的主要优点是,代码简洁易懂。缺点是,递归次数太多的情况下容易引发栈溢出。 double a = System.currentTimeMillis(); Main.fun1(100000L); //调用递归方法10万次 ...原创 2019-04-26 09:38:49 · 569 阅读 · 0 评论