自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

奋斗牛的博客

博主的跟人工作经验,以及日常学习收集整理出的经验分享

  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 单例模式的写法

1. 什么是单例模式单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,单例模式一般会屏蔽构造器,另外为单例对象提供一个全局访问点,单例模式属于创建型模式。2. 九种单例模式饿汉式单例饿汉式单例是在类加载的时候就立即初始化,并且创建单例对象。因为在线程还没出现以前对象就被实例化了,所以其线程绝对安全,不可能存在访问安全问题。 private static final Object o = new Object(); private Obje

2021-07-02 10:45:11 107

原创 简述三大工厂模式

简单工厂模式 (Simple Factory Pattern)由一个工厂对象来决定创建具体的产品实例,简单工厂模式并不属于 GoF 23 种设计模式之一,但是我们在平常开发中也运用的非常广泛简单工厂模式适用场景简单工厂适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心。简单工厂模式存在的问题假如每种产品创建不仅仅只是实例化一个对象,还有其它逻辑需要处理,那么我们无法直接使用一句反射语句来创建对象,所以还是避免不了要写很多 if 或者 swit..

2021-06-30 16:44:49 160

原创 软件设计七大原则

开闭原则 (OCP)核心是指在一个软件实体中(如类,函数等),我们应该对扩展开放、对修改关闭,这样就可以提高软件系统的可复用性和可维护性。里氏替换原则 (LSP)子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法。子类中可以增加自己的特有方法。当子类方法重载父类的方法时,方法的前置条件(即方法的输入/入参)要比父类方法输入的参数更宽松。当子类实现父类的方法(重载/重写/实现抽象方法),方法的后置条件(即方法的输出/返回值)要比父类更严格或者相等。依赖倒置原则 (DIP).

2021-06-30 15:48:21 92

原创 inputstream、base64互转工具类

package cn.sh.ideal.xzsp.ws.utils;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import java.io.*;/** * @author 牛自豪 * @className Base64Utils * @description base64文件互转 * @date 2021-05-10-15:11 */public class Base64Utils { /**

2021-06-01 14:05:21 284

原创 windows环境转Linux环境、上传文件问题

首先:win的上传不一定适用于linux环境

2021-05-26 20:14:28 175 2

原创 tomcat启动异常:org.apache.catalina.deploy.WebXml addFilter或者the JDBC Driver has been forcibly unregister

今天运维很久之前的项目,因为介入的开发人员有很多,代码也比较混杂,而且没有人交接。就在一无所知的情况下接手了这个项目,遇到了一些问题,在此做个记录。第一个报错: the JDBC Driver has been forcibly unregistered.项目是tomcat6运行的,开始就将数据库配置改了改,改完启动不成功报错:The web application [ ] registered the JDBC driver [net.sourceforge.jtds.jdbc.Driver] b

2021-02-22 11:16:01 687

原创 springBoot项目maven打包项目中一个文件夹名称大写,启动报错,找不到类

原因是:在这里大写了,这个包就变成了大写了,打包之后找不到这个类,而且编译居然过了。。。所以没怎么发现问题解决

2020-09-14 11:18:54 847 1

原创 NIO缓冲区介绍及使用方法

一、NIO介绍NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。IONIO面向流面向缓冲区阻塞IO非阻塞IO无选择器二、通道和缓冲区NIO系统的核心在于:通道(Channel)和缓冲区(Buffer)。通道表示打开到 IO 设备(例如:文件、套接字)的连接。若需要使用 NIO 系统,需要获取用于连接 IO 设备的通道以及用于容纳数据的缓冲区。然后操作缓冲区,对

2020-07-13 13:41:58 945

原创 java线程池好处、四种类型、创建、分析、合理分配

一、线程池的好处降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的销毁;提高响应速度,当任务到达时,任务可以不需要等待线程创建就能立即执行;提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。线程池的核心是走的ThreadPoolExecutor构造函数;二、四种类型Executor封装好了四种线程池类型:newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要

2020-05-18 12:56:33 1580

原创 java代码内发送网络请求

具体代码如下: public void test1() { //发送post请求 PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL("http:......."); // 打开和URL之间的连接 URLConne

2020-05-15 16:32:46 255

原创 mysql-分表与分库详解

分表分库垂直拆分垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式),这种拆分在大型网站的演变过程中是很常见的。当一个网站还在很小的时候,只有小量的人来开发和维护,各模块和表都在一起,当网站不断丰富和壮大的时候,也会变成多个子系统来支撑,这时就有按模块和功能把表划分出来的需求。其实,相对于垂直切分更进一步的是服务化改造,说得简单就是要把原来强耦合的系统拆分成多个弱耦合...

2020-04-20 15:50:23 134

原创 mysql-主从复制详解与读写分离讲解

Myql主从复制与读写分离主从复制概念影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的3306端口,通过网络发给MYSQL-B。MYSQL-B收到后,写入本地日志系统B,然后一条条的将数据库事件在数据库中完成。那么,MYSQL-A的变化,MYSQL-B也会变化,这样就是...

2020-04-09 16:37:09 233

原创 mysql-索引原理+实现

索引什么是索引索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记...

2020-04-08 15:38:36 132

原创 mysql-sql语句调优技巧,方法

SQL优化技巧使用group by 分组查询是,默认分组后,还会排序,可能会降低速度,在group by 后面增加 order by null 就可以防止排序.explain select * from emp group by deptno order by null;有些情况下,可以使用连接来替代子查询。因为使用join,MySQL不需要在内存中创建临时表。select * ...

2020-04-03 11:06:15 195

原创 mysql-mysql优化

存储过程什么是存储过程简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用;存储过程有哪些特性有输入输出参数,可以声明变量,有if/else, case,while等控制语句,通过编写存储过程,可以实现...

2020-04-01 15:34:08 126

原创 多线程-线程与进程的区别

线程和进程1.1进程百度百科中的介绍:链接进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体讲人话就是: 进程中有多个不同的执行路径,多个线程的集合,...

2020-03-21 12:32:45 138

原创 使用cookies存放中文,导致前台乱码,解决方法

//读取cookie,需要注意的是cookie是不能存中文的,如果需要存中文,解决方法是后端先进行编码encode(),//前端取出来之后用decodeURI('string')解码。解决方法,直接上代码:后端java: //是中文存放在cookies中会乱码所以此处将用户名编码,用于页面使用 try { log.setCreatorName(UR...

2020-01-13 09:53:06 899

原创 JVM-垃圾回收机制

垃圾回收机制概述:Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。ps:内存泄露是指该内存空间使用完毕之后未回收,在不涉及复杂数据结构的一般...

2019-12-23 21:47:13 82

原创 JVM-虚拟机参数

一、虚拟机参数-XX:+PrintGC 每次触发GC的时候打印相关日志-XX:+UseSerialGC 串行回收-XX:+PrintGCDetails 更详细的GC日志-Xms 堆初始值-Xmx 堆最大可用值-Xmn 新生代堆最大可用值-XX:NewRatio 新生代与老年代关...

2019-12-23 20:16:37 87

原创 JVM-调优总结

调优经验:在web系统中,尽量减少常量信息;尽量减少GC次数;新生代回收次数尽量比老年代次数多;设置新生代与老年代回收比例;-新生代与老年代1|3 或 1|4;JVM参数配置将初始的堆大小与最大堆大小相等,这样的好处是可以减少程序运行时垃圾回收次数,从而提高效率;将堆内存初始内存设为5M,最大堆内存设置20M,回收次数2次;日志打印://jvm配置参数//-Xms5m...

2019-12-23 20:16:23 126

原创 JVM-内存结构概述

一、 java虚拟机原理所谓虚拟机,就是一台虚拟的机器。他是一款软件,用来执行一系列虚拟计算指令,大体上虚拟机可以分为系统虚拟机和程序虚拟机, 大名鼎鼎的Visual Box、Vmare就属于系统虚拟机,他们完全是对物理计算的仿真,提供了一个可以运行完整操作系统的软件平台。程序虚拟机典型代码就是Java虚拟机,它专门为执行单个计算程序而计算,在Java虚拟机中执行的指令我们成为Java自己码...

2019-12-20 15:39:07 117

转载 vuex

1. vuex是什么github站点: https://github.com/vuejs/vuex在线文档: https://vuex.vuejs.org/zh-cn/简单来说: 对应用中组件的状态进行集中式的管理(读/写)2. 状态自管理应用state: 驱动应用的数据源view: 以声明方式将state映射到视图actions: 响应在view上的用户输入导致的状态变化(包含n...

2019-06-06 16:45:41 74

转载 vueSource

1. 准备1.[].slice.call(lis): 将伪数组转换为真数组2.node.nodeType: 得到节点类型3.Object.defineProperty(obj, propertyName, {}): 给对象添加/修改属性(指定描述符) configurable: true/false 是否可以重新define enumerable: true/false 是否可以枚举(...

2019-06-06 16:44:40 933

转载 vue进阶

1. vue脚手架用来创建vue项目的工具包创建项目: npm install -g vue-cli vue init webpack VueDemo开发环境运行: cd VueDemo npm install npm run dev生产环境打包发布 npm run build npm install -g serve ser...

2019-06-06 16:43:43 1224

转载 vue简单使用

1. Vue.js是什么?1). 一位华裔前Google工程师(尤雨溪)开发的前端js库2). 作用: 动态构建用户界面3). 特点: * 遵循MVVM模式 * 编码简洁, 体积小, 运行效率高, 移动/PC端开发 * 它本身只关注UI, 可以轻松引入vue插件和其它第三库开发项目4). 与其它框架的关联: * 借鉴angular的模板和数据绑定技术 * 借鉴react的组件化和...

2019-06-06 16:42:26 93

原创 登陆、创建、删除、选择数据库

1.登陆退出mysql1.1连接mysql登陆命令:mysql -u 用户名 -p 密码或者如上图 不输入密码,直接回车再输入密码1.2退出mysql命令直接输入:exit1.3 可选参数-u 等效于 --user=name登录到MySQL服务器的用户,如果省略,Linux下默认为当前用户,Windows下默认为ODBC。-p如果所登录的用户需要密码,那么这...

2019-06-06 16:22:38 119

TemplateOperate.java

doc4j技术经常使用的工具类,插入图片,插入文档,插入集合类数据

2020-03-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除