自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 问答 (3)
  • 收藏
  • 关注

原创 SpringMVC常用依赖配置以及Ajax Controller Jackson Interceptor使用示例

项目依赖注意使用64位的jdk,不要使用项目自带的jdk,自己重新选择jdk,否则会出现64位无法加载到32位platform的错误 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1&lt

2022-03-22 10:32:42 2056

原创 java.lang.ClassNotFoundException: org.apache.poi.xssf.usermodel.XSSFWorkbook错误

使用hutool进行Excel文档导出的时候出现了问题java.lang.ClassNotFoundException: org.apache.poi.xssf.usermodel.XSSFWorkbook报错显示错误在writer.write(list, true);拍错过后最终发现是由于poi版本太低导致,要将poi版本升至5,0,0<dependency> <groupId>org.apache.poi</groupId>

2022-03-20 11:11:10 9453

转载 ssm,c3p0, Access denied for user ‘xx‘@‘localhost‘ (using password: YES)

实测有用,搬运原地址:https://www.cnblogs.com/juniawuk/p/12904997.html

2022-02-27 15:14:52 196

原创 Java 注解

Java.Annotation一、Annotation的作用:不是程序本身的一部分,可以对程序作出解释(与注释的作用一致)可以被其他程序(如编译器)读取二、Annotation的格式:注解以“@+注释名”在代码中存在,还可以添加一些参数值,例如:@SuppressWarinings(value = “unchecked”)三、Annotation的使用位置可以附加在package、class、method、field等上面,相当于给他们添加了额外的辅助信息,可以通过反射机制编程实现对

2021-05-04 23:41:53 168 3

原创 Java多线程详解(六)高级主题 1、线程池

六、高级主题(1)线程池JDK5.0提供了线程池相关API:ExecutorService和ExecutorsExecutorService:真正的线程池接口。常见子类ThreadPoolExecutorvoid execute(Runnable command):执行任务/命令,没有返回值,一般用来执行RunnableFuture submit(Callable task):执行任务,有返回值,一般又来执行Callablevoid shutdown():关闭连接池Executors:

2021-02-22 23:09:35 77

原创 Java多线程详解(五)线程通信 1、生产者与消费者问题与线程通信的常用方法

Java多线程详解(五)线程通信(1)生产者与消费者问题这是线程通信中最常见的问题,具体不做阐述。解决方式:1、管程法生产者:负责生产数据的模块(可能是方法、对象、线程、进程)消费者:负责处理数据的模块(可能是方法、对象、线程、进程)缓冲区:消费者不能直接使用生产者的数据,他们之间有个“缓冲区”消费者将生产好的数据放入缓冲区,消费者从缓冲区中拿数据。2、信号灯法通过标志位来决定是否唤醒和等待线程。(2)Java线程通信常用的方法方法名作用wait()表示线程

2021-02-22 23:07:17 108

原创 Java多线程详解(四)线程同步 4、Lock(锁)

Java多线程详解(四)线程同步(1)并发与三个线程不安全的实例(2)线程同步(3)队列和锁(4)同步方法(synchronized方法和synchronized块)(5)死锁(6)Lock(锁)JDK5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始

2021-02-19 16:01:42 140

原创 Java多线程详解(四)线程同步 3、死锁

Java多线程详解(四)线程同步 、(1)并发与三个线程不安全的实例(2)线程同步(3)队列和锁(4)同步方法(synchronized方法和synchronized块)(5)死锁多个线程各自占有一些共享资源,并且都在互相等待其他线程占有的资源才能运行,而导致两个或多个线程都在等待对方释放资源,都停止执行的情形。某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的现象。举例://死锁public class DeadLock { public static voi

2021-02-19 15:58:21 76

原创 Java多线程详解(四)线程同步 2、线程同步(synchronized方法和synchronized块)

Java多线程详解 四、线程同步(synchronized方法和synchronized块)(1)、并发与三个线程不安全的实例(2)线程同步现实生活中,我们会遇到“同一个资源,多个人同时都想要使用”的情形,比如食堂的饭菜,最天然的解决方法时排队,这里的队就是队列处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象。这时候我们就需要线程同步,线程同步其实是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面的线程使用完毕,下一个线程再使用。(3)队列

2021-02-19 15:50:37 98

原创 Java多线程详解(四)线程同步 1、并发与三个线程不安全的实例

四、线程同步(1)并发并发:同一个对象被多个线程同时操作,会导致不安全现象的发生三个不安全的示例://1、不安全买票public class UnsafeBuyTicket { public static void main(String[] args) { BuyTicket buyTicket = new BuyTicket(); new Thread(buyTicket,"张三").start(); new Thread(buy

2021-02-19 15:40:16 99

原创 Java多线程详解(三)线程状态 5、守护(daemon)线程

(1)线程状态的简要说明(2)线程状态转换过程中常用的方法(3)停止线程(4)线程休眠(5)线程礼让(yield)(6)线程强制执行(join)(7)线程状态观测(8)线程的优先级(9)守护(daemon)线程线程分为用户级线程和守护线程虚拟机必须确保用户现场执行完毕虚拟机不用等待守护线程执行完毕常见的守护线程有后台记录操作日志,监控内存,垃圾回收等待通过thread.setDaemon(true)将线程设置为守护线程public class TestDaemon {

2021-02-17 23:19:42 163

原创 Java多线程详解(三)线程状态 4、线程状态观测与线程的优先级

Java多线程详解(三)线程状态(1)线程状态的简要说明(2)线程状态转换过程中常用的方法(3)停止线程(4)线程休眠(5)线程礼让(yield)(6)线程强制执行(join)(7)线程状态的观测线程的几个状态:NEW:尚未启动的线程处于此状态RUNNABLE:再Java虚拟机中执行的线程处于此状态BLOCKED:被阻塞等待监视器锁定的线程处于此状态WAITING:正在等待另一个线程执行动作达到指定等待时间的线程处于此状态TIMED_WAITING:正在等待另一个线程执行动作达到

2021-02-17 23:15:43 88

原创 Java多线程详解(三)线程状态 3、线程礼让(yield)与线程强制执行(join)

Java多线程详解(三)线程状态(1)线程状态的简要说明(2)线程状态转换过程中常用的方法(3)停止线程(4)线程休眠(5)线程礼让(yield)礼让线程,让当前正在执行的线程暂停,但不阻塞将线程从运行状态转为就绪状态让CPU重新调度,即重新加入就绪队列,礼让不一定成功,看CPU的调度策略public class TestYield { public static void main(String[] args) { MyYield myYield = new

2021-02-17 23:08:45 109

原创 Java多线程详解(三)线程状态 2、停止线程与线程休眠

Java多线程详解(三)线程状态(1)线程状态的简要说明(2)线程状态转换过程中常用的方法(3)停止线程 - 不推荐JDK提供的stop()、destroy()方法【已废弃】 - 推荐让线程自己停止下来(建议使用一个标志位进行终止变量 当flag = false,则终止线程运行)。//测试stop//1.建议线程正常停止--->利用次数,不建议死循环//2.建议使用标志位--->设置一个标志位//3.不要使用stop或者destroy等过时或者JDK不建议使用的方法publ

2021-02-17 23:01:07 96

原创 Java多线程详解(三)线程状态 1、线程状态的简要说明

Java多线程详解(三)线程状态(1)线程状态的简要说明在操作系统中有详细说明,这里不做赘述(2)线程状态转换过程中常用的方法其中join()方法可以理解为插队。interrupt()方法不建议使用。...

2021-02-17 22:55:30 79

原创 Java多线程详解(二)线程实现3、Lambda表达式

二、线程的实现(1)线程创建的三种方法(2)静态代理(3)Lambda表达式函数式接口:下面是一个包含了外部类,静态内部类,局部内部类,匿名内部类,Lambda表达式的例子:public class TestLambda { //3、静态内部类 static class Like2 implements ILike{ @Override public void lambda() { System.out.print

2021-02-17 15:23:11 160

原创 Java多线程详解(二)线程实现 2、静态代理

二、线程的实现(1)线程创建的三种方法(2)静态代理一个实例://测试类public class StaticProxy { public static void main(String[] args) { MarryCompany marryCompany = new MarryCompany(new You()); marryCompany.HappyMarry(); }}//需要实现的接口interface Marry{ voi

2021-02-17 15:14:17 115

原创 Java多线程详解(二)线程实现 1、线程创建的三种方法

二、线程的实现(1)线程创建:共有三种方法1. 继承Thread类自定义线程类继承Thread类重写run()方法,编写线程执行体创建编程对象,调用start()方法启动线程public class TestThread extends Thread{ @Override public void run() { //run方法线程体 for (int i = 0; i < 20; i++){ System.out

2021-02-17 15:10:26 108

原创 Java多线程详解(一)多线程简介

此系列博客为自己的学习笔记,希望可以帮助到大家。一、多线程简介(1)多任务:日常生活中,同一时间段干多件事,比如一边聊天一边玩手机,但实际上我们的大脑在同一时间依然只做了一件事。(2)多线程:原来是一条路,车多了,道路堵塞,于是多加了几个车道,让多个车同时在路上运行。(3)程序.进程.线程:程序:指令和数据的有序集合,本身没有运行的含义,是一个静态的概念。进程:是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。通常一个进程中可以包若干个线程,但一个进程中至少有

2021-02-17 15:04:59 134

原创 android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>错误原因

问题描述: 在模拟器上运行Android应用时,出现“抱歉,应用已停止运行”闪退现象,在Android Studio中输出的错误信息为:android.view.InflateException: Binary XML file line #2: Error inflating class 我的错误原因:在drawable文件夹下添加了图片资源,但是没有为各个分辨率创建单独的文件夹。解决方法:将添加的图片分别拖入drawable目录下不同分辨率的文件夹...

2021-02-16 19:50:30 470

原创 快速上手Java网络编程(二)基于TCP的套接字(Socket)通信

快速上手Java网络编程(二)基于TCP的套接字(Socket)通信一、套接字概述首先理解,计算机通信,这个通信更具体一点指的是什么?它事实上是主机的程序之间的通信。在网络通信中,我们使用IP地址来标识网络上的计算机,用端口号来标识一台主机上的各进程。因此,一个计算机上的进程想要与另一台计算机上的进程进行通信,不仅要知道它的IP地址,也要知道它所要通信进程的端口号,而网络套接字(Socket)正是IP和端口号的组合。综上网络通信也可以看做是 套接字与套接字之间的通信。 二、客户端套接字上面的概述

2020-12-19 18:44:43 352 2

原创 设计模式——状态模式

设计模式——状态模式定义:允许一个对象在其内部状态发生改变时改变它的行为,对象看起来似乎修改了它的类。**成员:**Context(环境)、State(抽象状态类)、ConcreteState(具体状态类)**理解:**这种模式在生活中的应用也很广泛,比如当你和朋友打牌,一开始手上有100块,输了一把,一下输了200块,此时你就从有资产的正常状态变成了负债状态。可以发现,你作为一个环境对象,当你执行了输钱这个操作后,你的资产从正的变为负的,从而导致你的状态从正常状态变为了负债状态。而我们知道,当你的状

2020-12-19 11:34:15 67 1

原创 设计模式——策略模式与模板方法模式的比较

设计模式——策略模式与模板方法模式的比较最近学到设计模式的策略模式和模板方法模式时,犯了点迷糊,总是感觉这两个模式太像了,我们来看二者的类图:可以发现这个两个模式的类图都十分相似。下面是这两个模式的定义:策略模式:定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的用户而变化,也称为政策模式。**模板方法模式:**定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。下面是我的理解:

2020-12-18 16:08:52 349 1

原创 快速上手Java网络编程(一)基础介绍、URL类和InetAddress类

快速上手Java网络编程(一)基础介绍、URL类和InetAddress类最近在学Java网络编程,里面涉及到的一些概念比较容易搞混,于是决定写博客记录整理一下,方便日后复习,如有发现错误之处,还请在评论区指正。一、 前置知识(1)Java基本语法(2)需要对Java输入输出流有基本的认识(其实不懂也能看得懂)(3)了解Java的多线程机制(4)对计算机网络(计算机之间的通信)有基本的认识(最起码知道啥是IP地址,用来干啥的)二、URL类和InetAddress类1、URL类URL想必大

2020-12-17 12:37:34 271

原创 设计模式——访问者模式的理解

访问者模式定义:表示一个作用于某对象结构中的各元素的操作,它使我们在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式是一种对象行为型模式。成员: Visitor(抽象访问者)、ConcreteVisitor(具体访问者)、Element(抽象元素)、ConcreteElement(具体元素)、ObjectStructure(对象结构)。理解: 这种模式所应用的情形在生活中比较常见,比如考完试出了一份成绩单,班主任安排了两个学生,一个学生负责找出所有挂科的同学把他们统计下来并叫到办公室。

2020-12-16 21:50:29 351

原创 Navicat自增长设置找不到(连接SQLServer数据库)

如果你已经把表建立过了,将无法修改表项的自增长。只能在新建一张表的时候进行自增长设置步骤如下:step1:新建一张表,字段如下,注意设置为自增长的列需要设置为不为nullstep2:进入选项页面将标识字段设置为id,标识种子即为增长的开始数字,标识增量为一次自动增长多少。保存即可,此时id列将会从1开始自动增长。...

2020-11-29 23:06:37 2645 1

原创 一个简单的神经网络数字识别实现(入门级)

原文地址:https://zhuanlan.zhihu.com/p/42174696这里不做过多介绍,只用最快的方式实现简单的图像识别代码如下:import numpy as np# scipy.special for the sigmoid function expit()import scipy.special# library for plotting arraysimport matplotlib.pyplot# ensure the plots are inside this n

2020-11-29 17:39:25 596

原创 org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.xxxx_jsp

刚学习jsp,如果你遇到这样的错误: org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.xxx_jsp总是在jsp指令标记行上报错:不妨检查一下你的指令标记行上的%和@中间有没有空格,教材上的%和@里的太开了,导致我以为有空格,事实上是不能有空格的,害的我重装了tomcat,下了最新的jdk搞了一整天???? 最后查出来是多了个空格希望可以帮到一些人少踩着这个坑。...

2020-11-23 17:13:46 4355

原创 Hashtable.get()报错java.lang.NullPointerException

一、问题描述学习享元模式,做实例演示(围棋的黑子白子)的出现了一个问题,主要代码如下:import java.util.*;public class IgoChessmanFactory { private Hashtable ht; public IgoChessmanFactory() { ht = new Hashtable(); IgoChessman black, white; black = new BlackIgoChessman(); white= new Wh

2020-11-21 13:08:24 342

原创 设计模式——2.1、创建型模式(简单工厂、工厂方法、抽象工厂)

设计模式——2.1、创建型模式(简单工厂、工厂方法、抽象工厂)在一切开始前,我们需要知道的是设计模式不是被凭空创造出来的,而是从实际编程经验中总结出来的。因此此篇博客只是谈谈我对创建型设计模式的理解,欢迎大家留言讨论,如有错误,也希望能够及时指正,不深感激。一、简单工厂模式定义:在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。(此模式并不属于GoF23个基本设计模式)角色:Factory(工厂角色)、Prod

2020-11-15 16:52:11 114

原创 设计模式——1、理解面向对象设计原则

最近在学设计模式,很多东西很抽象,理解起来挺困难的,所以在此写一些博客记录一些我的理解,如果能够帮到一些人,那自然更好,当然欢迎在评论区批评指正交流,不胜感激。一、单一职责原则定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。分析:一个类的主要职责包括两个方面,数据职责和行为职责。数据职责通过其属性来体现,行为职责通过方法来体现。如果职责太多,将导致系统非常脆弱,一个职责可能会影响其他职责,因此我们应将这些职责进行分离,将不同的职责封装在不同的类中,即将不同的变化原因封装在不同的

2020-09-27 17:41:53 223

原创 多人协同开发那些事 先看懂再操作(Git分支合并冲突的解决)

Git多人协同开发那些事(分支合并冲突的解决)当开发一个大型项目时通常都是许多人进行合作,每个人负责项目的一部分,Git是实现多人协同开发最常见的工具,但是对于刚接触Git的人来说,多人协同开发会遇见很多问题,这篇博客的内容主要就是为了给出多人协同开发的正确步骤,并对这个过程中遇到的问题进行解释和解决。一、协同开发的准备工作 ????1、新建一个仓库(当然2、创建主分支,即上传项目的初始内容到master分支3、团队内成员进行分工(各个成员之间负责的内容用尽量不冲突)二、开发阶段 ????1、

2020-07-24 11:33:50 6642 1

原创 第三章 git的版本回退功能

第三章 git的版本回退功能一、使用场景当前的repo里存在的一定是最新提交的版本,可要是想查看以前提交的版本呢,或是想回到以前提交的版本呢?或者说,我想查看每次提交的信息该怎么办呢?二、解决思路使用命令 :$ git log并可以查看提交的日志信息,主要内容包含,版本(提交)编号、提交者信息、提交日期、提交的注释(从上到下)。当然,一般来说其中最重要的信息是:版本编号(其中有HEAD标识的就是当前版本)、提交的注释。因为查看日志信息的目的一般都是选择回退到某个版本,或是查看各个版本的提

2020-06-25 14:15:21 165

原创 第二章-Git版本库的创建

首先需要了解什么是版本库,版本库就是我们前面简称库的东西,英文名叫repository,简写为repo,通俗来讲就是一个被Git管理起来的文件夹,本质还是一个文件夹,只不过现在这个文件夹被git这个管理系统给管理起来了。一 、创建一个版本库步骤:在GitBash这个窗口进入一个指定的文件夹输入代码: $ mkdir learngit//创建一个文件夹进入创建的文件夹,输入: $ cd learngit//进入该文件夹 $ git init //在此文件夹创建一个git库此时

2020-06-25 14:14:37 278

原创 第一章-Git的安装与启动

首先需要了解的是Git是一个分布式版本控制系统,可以方便的管理文件,会帮你记录repo中文件的修改记录,根据这个修改记录可以实现回到某个文件指定版本的功能,从而实现对文件的高效管理,提高工作效率。一、Git的安装(1)Windows系统1、系统的下载与安装​ 安装git直接从Git官网下载,默认选项安装即可。2、如何判断安装成功​ 如果安装成功,在Windows的开始菜单会可以看见“Git”->“GitBash”,点击后出现类似于Dos指令窗口的窗口,即代表安装成功Linux系统和Mac

2020-06-25 14:02:54 2048

原创 SQLServer附加文件发生错误解决方法

一般的解决方法其他博客里已经介绍的很详细了,我就不多说了。如果你尝试了其它的解决方法还是解决不了,这里提供一个比较无脑的方法。在开始菜单栏,找到右键点击点击以管理员身份运行。然后再次附加,应该就可以成功附加了。还有提醒一下,附加的时候一定要有日志文件,否则也是无法附加的。...

2020-05-10 10:07:33 654

原创 不理解数据库SQL中的exists语句?来,用C语言解释给你听

谈谈我对SQL语句中exists语句的理解首先如果刚刚接触SQL语句看到exists语句一定会很难理解,因为在我们使用子查询时,是先执行子查询语句的,整个过程是由内至外,例如:select Snamefrom Swhere Sno in (select Snofrom SCwhere Grade >= 60);上面这个语句就是查询分数大于六十分的学生姓名,需要先执行内层的子查询再执行外层的查询,是有明确的先后次序的。而我们再看exists语句:select Snamefrom S

2020-05-09 17:07:55 366

原创 数据库中char,nchar,varchar,nvarchar到底有什么区别?

一些主要的数据类型: 分类 备注和说明 类型 说明 二进制数据类型 存储非字符和文本的数据 image 可用来存储图像 文本数据类型 字符数据包括任意字母符号或数字字符的组合 ...

2020-05-01 09:25:05 350

原创 表的内连接、外连接、自连接、自然联接到底是什么?

一、什么是联接1、什么是联接联接就是把两个表以笛卡尔积的形式组合到一起,除此之外,好像也没有什么其他方法可以把表组合到一起了。2、笛卡尔积在离散数学中,我们就学过集合的运算,其中的一种形式就是笛卡尔积。具体形式就是 第一个集合中的每一个元素与第二个集合中的每一个元素组合。在对表进行联接时,可将表看做一个集合,表中的元素就是表中的一行。对表进行联接即与第一张表中的...

2020-05-01 09:22:14 5532 1

转载 Python网络爬虫入门笔记 十一、Re库的match对象

当时记笔记的时候在csdn上搜索了一下,觉得这个还可以https://blog.csdn.net/nicebluechai/article/details/103594004

2020-05-01 09:13:11 268

空空如也

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

TA关注的人

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