自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 bug笔记 - Mybatis连接mysql报错:Client does not support authentication protocol requested by server

这种问题一般出现在刚安装好的MySQL上,按照下面的操作就能解决问题。1. 进入MySQL,选择mysql这个databasemysql -uroot -pUSE mysql;2. 更改密码(也输入原密码)ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘new_passwd’;3....

2019-04-02 09:34:37 861

原创 bug笔记 - Error:java: Compilation failed: internal java compiler error

报这个错是因为Project中的JDK版本没有设置对。一般情况下,是因为以下三个地方(稍后上图)没有设置对,但是在我都设置为了统一的版本之后,还是报错,后来终于找到了原因:因为pom文件里面的版本号不对,与工程的版本不一致,导致报错。 具体解决方案如下:1. 首先是三个常规校验版本号的地方如果检查上面三个地方都没有问题的话,再检查一下你的pom.xml文件,看看pom文件的版本号是否与上...

2019-03-18 12:27:46 388

原创 日志埋点 --- log4j的配置及使用

本文的运行环境为:IDEA + Maven,有关Maven框架的使用可自行百度。1. 导入log4j包在项目的pom.xml的<dependencies>标签下添加如下代码,然后等待Maven将log4j的包下载完成。 <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency&gt...

2019-03-11 10:37:14 3913

原创 Java --- Java中的线程池

Java中,想要创建一个线程池有两种方式,分别是使用Executors的工厂方法创建和直接使用ThreadPoolExecutor去创建一个线程池。在阿里巴巴开发手册中有讲,在有多线程开发的需求时,强制使用线程池,避免因为“过度切换”而引起的资源耗尽问题,并且创建线程池时需通过ThreadPoolExecutor的方式去创建。原文如下:【强制】线程资源必须通过线程池提供,不允许在应用中自行显...

2018-11-26 12:05:26 346 1

原创 bug笔记 - mybatis --- nested exception is org.apache.ibatis.builder.IncompleteElementException

前几天在使用mybatis框架自定义mapper的时候报了这个错,现在把这个原因记录一下。bug原因:自定义mapper用来返回表的主键ID这一列,我的mapper文件内容如下:<select id="selectId" parameterType="com.service.dao.TestQuery" resultMa

2018-11-16 18:29:10 6023 1

原创 Java8 --- 函数式接口@FunctionalInterface及default关键字

最近在开发的过程中有一个点让我比较感兴趣,就是使用Lambda表达式的方式来实现Comparator接口。1. 关于Comparator和Comparable既然提到了Comparator,那就大致来说一下Comparator和Comparable接口的区别。Comparator是一种策略模式,即被比较的对象自身不需要做任何改变(实现任何排序接口),而是通过实例化一个Comparator策...

2018-11-06 21:33:23 2379

原创 Maven依赖冲突的解决

在使用IDEA开发比较大的Spring web项目的时候,常常会在pom文件中导入大量依赖,所以就有可能造成Maven的依赖冲突。下面来看一下如何解决Maven的依赖冲突。1. 先清当前的jar包的缓存:IDEA的 File选项 -> invalidate caches/restart2. 打印Maven的依赖树:mvn dependency:tree(建议将内容重定向到一个fi...

2018-10-25 20:51:53 1635

原创 JVM --- JVM的内存结构以及对象的创建和内存布局

1. JVM的内存结构JVM的内存结构主要是指Java程序在运行时的数据区的划分. 它主要由虚拟机栈, 本地方法栈, Java堆, 方法区, 程序计数器这五部分组成. 这五部分, 虚拟机栈/本地方法栈/程序计数器是线程私有的, Java堆和方法区是线程共享的.下面我们就来逐一介绍一下这五部分.(1) 虚拟机栈虚拟机栈是线程私有的, 所以它的生命周期与线程相同.在Java程序的执

2018-02-07 00:04:03 462

原创 设计模式 --- 观察者模式

观察者模式是JDK中使用最多的设计模式之一. 在学习观察者模式之前, 我在网上也找了很多博客, 这些博客都是的讲解都是基于 head first 设计模式 这本书的. 如果看书的话, 很简单就能学会这个设计模式, 但是将书上的内容些成博客, 其实是不太容易理解的. 所以在这篇博客中, 我将用我自己的方式以示例的方式来讲解这个设计模式.1. 观察者模式是什么? 它解决了什么问题?

2018-02-05 00:30:20 453 1

原创 bug笔记 - Java --- 网络编程使用BufferedInputStream从缓冲区中读不到数据(浅析BufferedInputStram和BufferedOutputStream的工作机制)

本文主要是从我写Java网络编程时使用BufferedInputStream和BufferedOutputStream的时候遇到的bug, 来分析BufferedInputStream和BufferedOutputStream的工作机制和简单的源码分析.1. bug描述最近在写一个Java网络编程的程序, 其中涉及文件的传输问题, 选择使用BufferedInputStream和Buf

2018-02-01 12:30:34 1708 2

原创 bug笔记 - Servlet&JSP --- 前端代码报错: Failed to decode downloaded font

1. bug描述今天写代码的时候出现了一个问题, 前端页面的一些小图标不见了, F12之后, 发现报错信息如下: Failed to decode downloaded font: http://localhost:8080/font-awesome-4.7.0/fonts/fontawesome-webfont当然这只是其中的一条, 因为由好几个图标都不能显示, 所以有好几条这样的报错信息.2.

2017-12-23 00:26:07 2189

原创 bug笔记 - Servlet&JSP --- 前端页面乱码问题

1. bug描述今天在合前端和后台的代码的时候出现了让人头大的问题, 前端页面乱码, 并且css/js格式不能显示出来. 前端页面是大壮写好的HTML页面, 我合后台代码的时候直接将后缀改为了.jsp, 就出现了乱码.2. bug原因首先前端页面出现乱码可以分为两种情况, HTML和JSP.(1) HTML乱码解决HTML乱码的原因是网页源代码的编码与网页中的中文编码不同导致, 这样就会导致浏览

2017-12-13 17:31:44 586 1

原创 Java学习笔记 --- ArrayList的动态扩容

今天Java上机的时候有一道题是这样的: 本题目要求定义一个长度可变的整型数组IntArray,数组初始长度为5,当输入的数组元素个数超过数组长度时,数组就自动增加5个元素的容量,即数组长度增加5。也就是说实现一个类似于ArrayList的自动扩容int型的数组. 既然类似于ArrayList, 那不妨来看看ArrayList是如何动态扩容的. ArrayList是集合类List基于数组的一个实现,

2017-11-29 23:02:56 1046 3

原创 bug笔记 - Spring --- Tomcat 报错: SEVERE: One or more listeners failed to start.

emmm, 最近把Spring框架也学的差不多了, 因为最近要开始迭代小组图书管理系统2.0, 不太有时间再总结Spring In Action的学习笔记了, 所以把Spring学习笔记先放一段时间啦~1. bug描述: 在写Spring代码的时候, 启动Tomcat时报错.2. bug信息:Connected to server[2017-11-16 09:28:36,551] Artifact

2017-11-16 22:03:54 70560 6

原创 Spring学习笔记(十) --- 浅析Spring MVC的工作机制

本系列博客为spring In Action 这本书的学习笔记终于学完了Spring的核心基础, 要开始学习web中的Spring了!!! Spring MVC(Model-View-Controller)是Spring的一个web框架, 在正式开始学习Spring MVC的Controller之前, 我们先来简单了解一下Spring MVC的工作机制. 一. 跟踪Spring MVC的请求要想

2017-11-01 21:52:41 728 1

原创 计算机网络(四) --- 数据链路层

关于数据链路层我只是大概翻看了一下, 可能总结的不是很系统, 就将看到的点暂且记录下来.一. 数据链路的作用这里的数据链路层是将TCP/IP模型中的数据链路层的数据链路部分单独拿出来进行分析.计算机中以二进制0/1序列来表示信息, 然而实际的通信媒介之间处理的却是电压的高低/光的闪灭以及电波的强弱等信号. 物理层的作用就是将0/1序列和这些信号进行转换. 而数据链路层处理的数据就不仅仅是单纯的0/1

2017-10-26 22:08:06 1259

原创 Spring学习笔记(九) --- 在Spring中创建切面

本系列博客为spring In Action 这本书的学习笔记在上一篇博客中, 我们了解了AOP的基本概念和Spring中的AOP, 那么本篇博客就来实际操练一下, 看看在Spring中如何创建一个切面. 一. 编写切点通知和切点是切面的最基本的元素. 那么要创建一个切面, 我们就从定义切点开始吧. 切点定义了在哪些连接点来应用通知.在Spring AOP中, 要使用AspectJ的切点表达式语言来

2017-10-23 21:52:09 1855 2

原创 Spring学习笔记(八) --- 面向切面的Spring

本系列博客为spring In Action 这本书的学习笔记早在第一篇Spring的博客里面就提到过, Spring采取了四种策略来简化Java开发, 前几篇博客着重讲了其中的一种策略: 依赖注入(DI). 那么这篇博客就要学习Spring的另一个简化Java开发的策略: 面向切面编程(AOP). DI为了使应用对象之间解耦, 而AOP则是为了使横切关注点与它们所影响的业务逻辑之间解耦. 一. 什

2017-10-16 18:03:41 521

原创 Spring学习笔记(七) --- 运行时值注入

本系列博客为spring In Action 这本书的学习笔记我们知道Spring的特性之一就是它的依赖注入机制. 那么当我们提到依赖注入最先想到的应该是Bean与Bean之间的依赖注入, 也就是我们前面大篇幅谈到的装配Bean, 但是依赖注入的另一个方面就是指将一个值注入到Bean的属性或者构造器参数中, 本篇博客就是来探讨一下关于值注入的一些问题.一. 运行时值注入在说明运行时值注入之前, 我们

2017-10-12 00:59:36 558

原创 Spring学习笔记(六) --- 装配Bean之高级装配

本系列博客为spring In Action 这本书的学习笔记本篇博文说是装配Bean之高级装配, 其实Spring里面装配Bean的核心技术就是前几篇博客里面提到的, 这里的高级装配主要是讲我们在使用基本装配方式装配Bean时所用到的一些技巧. 一. 环境与profile我们在开发软件的时候, 有一个很大的挑战就是我们要将应用程序从开发环境迁移到生产环境. 开发环境的一些做法可能并不适合生产环境,

2017-10-09 22:47:57 686

原创 计算机网络(三) --- 浅析TCP/IP分层模型与通信示例

一. TCP/IP四层模型前面我们提到过OSI七层模型, 首先来看一下TCP/IP四层模型与OSI七层模型之间的大致对应关系以及各层对应的部分网络协议.下面我们就TCP/IP每层的功能以及每层的重要协议做一个简单了解.1. 数据链路层根据TCP/IP模型与OSI模型的对应关系我们可以看出, TCP/IP里面的数据链路层包含了OSI里面的数据链路层与物理层. OSI的物理层是负责数据传输的硬件,

2017-09-26 21:06:01 1279

原创 Java学习笔记 --- Java中的参数传递问题

前言这学期学校开了Java, 所以服务器组的小伙伴们都开心地写起了Java. 昨天晚上萌萌哒的校园问了我一个问题, 在C语言中参数的传递中, 我们可以使用指针进行传递, 从而更改参数的值, 可是在Java中, 并没有取地址操作, 也没有C++里面的引用操作, 那么应该怎样更改参数的值呢?所以在这里来谈一谈我对Java中的参数传递的一些粗浅的认识.1. Java中的数据类型?在说到Java参数传递问题

2017-09-24 10:46:56 2736 3

原创 Spring学习笔记(五) --- 装配Bean之导入和混合配置

本系列博客为spring In Action 这本书的学习笔记前言之前在Spring学习笔记(三) — 装配Bean之通过Java代码装配Bean的最后提到: 在这里, Spring会自动给cdPlayer()方法匹配一个CompactDisc类型的Bean, 甚至这个Bean可以不在这个JavaConfig中, 它可以通过组件扫描或者通过XML进行配置来被这里的cdPlayer()方法使用.

2017-09-22 20:25:48 599

原创 Spring学习笔记(四) --- 装配Bean之通过XML装配

本系列博客为spring In Action 这本书的学习笔记在之前的两篇博客里我们说完了自动装配和通过Java代码装配Bean, 这篇博文里我们将介绍最后一种装配Bean的方式 — 通过XML装配.1. 创建一个XML配置文件和上一篇通过Java装配Bean的博文里面一样, 我们先来看一下在自动装配中出现过的XML文件.程序1: 在CD播放器里面出现过的XML配置文件 <?xml version=

2017-09-20 21:08:14 493

原创 Spring学习笔记(三) --- 装配Bean之通过Java代码装配Bean

本系列博客为spring In Action 这本书的学习笔记上一篇博客中讲了自动化装配Bean, 那么这篇博客就来讲一下第二种种装配Bean的方式: 通过Java代码装配Bean.通过Java代码装配Bean所谓通过Java代码装配Bean, 就是通过编写JavaConfig文件进行配置, 更简单地来讲, 就是在JavaConfig中声明Bean.我们先来简单探究一下JavaConfig与一般的J

2017-09-12 22:58:12 448

原创 计算机网络(二) --- 网络基础 : 传输方式的分类及网络的构成要素

本文为一篇扫盲文, 主要是对网络中一些基础概念进行罗列和解释, 为以后学习网络打下基础.一. 传输方式的分类网络与通信中根据其发送数据的发送方法进行多种分类, 分类的方法也不尽相同, 以下我们来介绍几种常见的分类.1. 面向连接型和面向无连接型根据网络发送数据的方式, 可分为面向连接型和面向无连接型.(1) 面向连接型 : 在发送数据之前, 先要在收发主机之间建立一条通信线路, 也就是建立一条连接,

2017-08-18 22:30:02 9126 1

原创 Spring学习笔记(二) --- 装配Bean之自动化装配

本系列博客为spring In Action 这本书的学习笔记前面谈到了装配Bean可以有XML装配和基于Java的装配, 但是这两种装配都属于显式装配, 也就是说我们得手动写配置文件, 那么有没有更简便的方法呢? 就是我们今天介绍的自动化装配 !装配在说自动化装配之前, 我们先来介绍一下装配, 毕竟在上一篇博客中只是粗略地提到过.创建应用对象之间协作关系的行为称为装配, 这也是依赖注入的本质.Sp

2017-08-16 15:49:14 458

原创 Spring学习笔记(一) --- Hello Spring

写了近一天的博客没有了!!!!! 我怎么不剁了我这双手!!!!!! 本系列博客为Spring In Action 这本书的学习笔记Spring简介 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。这是网上给出的Spring框架的概念, 可能初次接触到Spri

2017-08-15 17:09:16 1581 2

原创 计算机网络(一) --- OSI七层模型

OSI七层模型是ISO(国际标准化组织)制定的一个关于通信协议设计的参考模型. 它将通信协议中必要的功能分为了七层, 上下层进行交互时所遵循的约定叫”接口”, 同层交互时所遵循的约定叫”协议”. 虽然OSI模型并没有得到普及, 实际应用意义也不是很大, 但是对理解协议内部运作有很大的帮助. 本文将以一个”对话”的例子来解释分析一下OSI七层模型各层的功能和作用.OSI七层模型概述我们先以两张图来

2017-08-14 11:41:24 788 1

原创 IDEA下创建一个Maven + SpringMVC项目

这几天就开始学习Spring框架了, 工欲善其事, 必先利其器, 所以就从搭建环境开始吧. 因为是刚开始学习, 所以对有些配置文件了解的不是很清楚, 这期间也参考了很多博客, 暂且将搭建步骤记录下来, 以免忘记.创建Maven项目首先是new一个Project, 选择创建Maven项目:Project创建好之后, 进行IDEA的主页. 在右下角有Maven projects need to be

2017-08-10 15:25:35 603

原创 Java学习笔记 --- 反射机制

做完了第一版的图书管理系统, 决定这段时间静下心好好看一看书, 一边复习Java基础和Servlet&JSP, 再一边学一学框架, 写读书笔记将学习到的知识点记录下来.反射是什么? 反射,一种计算机处理方式。是程序可以访问、检测和修改它本身状态或行为的一种能力。这是百度里给出的概念, 可能大多数人跟我刚开始一样, 不是很理解这句话. 那么我们先从Java文件编译链接后生的可执行文件说起吧.首先

2017-08-03 23:44:44 561 1

原创 HTTP中GET方法和POST方法的区别

为什么突然想要分析一下GET和POST方法的区别呢,是因为最近在写小组的图书管理系统。这个项目的第一版已经基本写完了,但是仍有一些小bug让我想不明白。比如其中的一个bug: 用户在图书详情页对该图书进行评价,评价成功之后刷新页面,将会在刷新的那一刻再次提交评论内容,刷新多次则会提交多次。 今天不经意间终于搞明白了这个bug,问题就出在这GET和POST上!bug复现先来看一下评论部分的

2017-08-02 16:07:28 606

原创 JSP&Servlet --- JSP DAO模式

这几天开始和社会董还有小孟愿开始写小组的图书管理系统,将在此期间遇到的一些问题和学到的一些知识总结在博客里。 这篇博客要总结的就是在WEB项目中用到的很重要的一种数据库设计模式DAO。DAO是什么DAO是WEB项目里面的数据层,主要负责为其他各层(MVC(Model View Controller))提供数据。DAO层里封装了对数据库操作的各种操作的JDBC代码。为什么要使用DAO我们在写WEB项

2017-07-25 15:44:03 1743

原创 JSP&Servlet6(二) --- JSP标准标签

什么是标准标签? 标准标签有什么作用?简明扼要的来说, 标准标签就是一些以”jsp:”作为前置的标签, 主要作用是为了减少JSP中的Java代码.1. <jsp:include> <jsp:forward>标签<jsp:include>在前面曾经提到过include指示元素, 可以在JSP转译的时候将其他的JSP页面包括合并进来一起转译, 但是这样include进来的JSP页面是静态的, 我们无法给

2017-06-20 11:11:22 426

原创 JSP&Servlet6(一) --- 初探JSP

前面总结完了Servlet相关的基础知识, 现在来学习总结一下JSP.1. JSP简介JSP全称Java Server Pages, 是一种动态网页开发技术. JSP与Servlet是一体两面的, 因为JSP网页最终会被容器转译为Servlet源代码, 然后自动编译为.class文件, 再载入.class文件, 最后生成Servlet对象. 下面我们以一个Hello World的例子, 来分析以下J

2017-06-12 22:55:19 866

原创 JSP&Servlet5(三) --- 过滤器 封装器

过滤器是什么?抽象点来说, 就是介于Servlet之间的独立的元件, 可以随时加入到应用程序之中, 也可以随时移除.具体点来说, 比如针对某些特定的页面, 只有特定的用户才能浏览, 这个时候我们就希望能把所有登录的用户进行过滤, 只给一些用户访问的权限, 这就可以在Servlet之前实现一个用户验证的过滤器.1. 实现与设置过滤器在Servlet中要实现过滤器, 必须要实现Filter接口, 并使用

2017-06-07 21:29:11 318

原创 Java学习笔记 --- Java中常用的包及其重要的类简要概括

今天康康问了我一个问题, 问我在Java中有没有像C里面stdio.h, C++里面iostream这样的标准类库, 当然是有的, Java里面的标准类都被封装在一个个包里面, 今天就来简要概括一下Java里面常用的包.问: Java里面有没有不用improt导入就能使用的包?还真有一个包, 不用导入就能使用里面的类和方法. 比如在main()函数里面只写一句System.out.println(“

2017-06-06 20:52:20 1002

原创 JSP&Servlet5(二) --- 应用程序事件 监听器

Web容器管理Servlet/JSP相关的对象生命周期, 若对HttpSession对象/ServletContext对象在生成, 销毁或相关属性设置(或改变)发生的时机感兴趣, 则可以实现对应的监听器(Listener).1. ServletContext事件 监听器与ServletContext事件相关的监听器有:生命周期监听器: ServletContextListener属性改变监听器:

2017-06-03 15:16:59 496 2

原创 C++和Java的浅层拷贝与深层拷贝

今天上课学到了C++的浅层拷贝与深层拷贝, 于是在这里将C++和Java关于浅层拷贝与深层拷贝做一个对比.一.C++的浅层拷贝与深层拷贝先来了解一下C++中的复制构造函数://假设有这样一个TEST类:class TEST{ private: int *num; public: TEST(int n) {

2017-05-24 23:07:26 1160 2

原创 JSP&Servlet5(一) --- Servlet进阶API

关于Servlet的一些基本概念-每个Servlet都必须由Web容器读取Servlet设置信息(标注或web.xml),初始化等,才能成为一个真正的Servlet.1.ServletConfig:每个Servlet设置的代表对象.对于每个Servlet的设置信息,Web容器都会为其生成一个ServletConfig作为代表对象. 2.ServletContext:代表整个Web应用程序的对象.S

2017-05-24 17:29:40 886 1

空空如也

空空如也

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

TA关注的人

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