
java崛起
文章平均质量分 85
java从入门到精通,以及在路上潜伏的坑
贪吃小明
学习是一种态度,优秀是一种习惯
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一次心酸的项目整合过程
今天创建了一个项目,项目中用到了log4j,redis,shiro,spring,spring MVC,mybatis等技术,整合框架的时候,因为版本冲突浪费了很多的时间,所以今天就记录一下这个过程spring 5.x 不支持 log4j,需要使用log4j2spring 4.x 需要加入 jackson相关jar包,不然会导致各种奇奇怪怪的类加载不到,而且需要jackson的jar包版本在...原创 2020-02-13 20:43:49 · 256 阅读 · 0 评论 -
spring整合redistemplate
添加依赖 <!-- redis --> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 --> <dependency> <groupId>org.apache.commons</groupId> &...原创 2020-02-13 18:04:43 · 1487 阅读 · 0 评论 -
log4j详细配置文件
#log4j.rootLogger = [ level ] , appenderName1, appenderName2, …#level :设定日志记录的最低级别,可设的值有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别,Log4j建议只使用中间四个级别。appenderName:就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开。...原创 2020-02-12 14:25:02 · 862 阅读 · 0 评论 -
MyBatis Generator的使用
什么是MyBatis GeneratorMyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或许多表),并将生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG寻求对简单CRUD(创建,检索,更新,删除)的大部分...原创 2019-05-29 13:10:14 · 4582 阅读 · 0 评论 -
springMVC客户端请求中文乱码以及静态资源访问问题的解决
客户端请求乱码原理是创建一个过滤器过滤所有的请求,看看每个请求中的编码方式是否为指定编码方式代码实现:创建一个解决乱码的过滤器package com.imooc.oa.global;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSer...原创 2019-05-23 11:38:23 · 1105 阅读 · 0 评论 -
spring03-----在spring中使用AOP
在Spring中默认使用JDK动态代理实现AOP编程,使用org.springframework.aop.framework.ProxyFactoryBean创建代理是Spring AOP 实现的最基本方式。一、通知类型根据Spring中通知在目标类方法中的连接点位置,通知可以分为6种类型:类型名称作用应用场景环绕通知(org.aopalliance.intercept...转载 2019-05-22 16:59:18 · 236 阅读 · 0 评论 -
spring学习02---什么是AOP以及AOP的实现
一、什么是AOP(Aspect Oriented Programming)在软件业,AOP(Aspect Oriented Programming的缩写)为:面向切面编程AOP是一种通过预编译方式和运行期动态代理实现程序功能的统一维护的技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔...原创 2019-05-22 15:44:06 · 284 阅读 · 0 评论 -
IOC控制反转
IOC是什么IOC是一个能够控制对象生命周期的容器,什么叫做控制对象的生命周期呢?我们都知道,一个对象的生命周期是从new出来之后,到对象被销毁,在此期间是对象的生命周期。那么使用new来创建对象有一个最大的麻烦,那就是高耦合。我们使用一个IOC容器来控制对象的生命周期,也就是使用一个容器来对对象的创建即销毁进行管理,如果需要使用这个对象,那么就像容器要这个对象,这样可以大大降低程序的耦合程...原创 2019-05-11 11:54:02 · 665 阅读 · 0 评论 -
spring bean的作用域
在spring中bean的作用域一共有四种作用域作用singleton在spring IOC容器中仅存在一个bean实例,即bean以单例模式存在,默认为单例模式prototype每次调用 getBean() 都会得到一个新的bean实例request每次 HTTP 请求都会创建一个新的实例,仅适用于webApplicationContext环境ses...原创 2019-05-19 11:05:28 · 146 阅读 · 0 评论 -
spring实例化bean的方式
一、通过set方法实例化bean(set注入、使用property标签赋值)bean:package scope;import java.util.Arrays;import java.util.List;import java.util.Map;import java.util.Set;public class bean2 { private Integer id; ...原创 2019-05-18 11:40:11 · 3448 阅读 · 0 评论 -
第一个spring项目
什么是springSpring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。◆目的:解决企业应用开发的复杂性◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能◆范围:...原创 2019-05-18 10:05:24 · 220 阅读 · 0 评论 -
springMVC 01 ------- springMVC入门及环境搭建
一、springMVC入门SpringMVC简介MVC 是把 Web 应用程序分为三层,分别是:控制器(Controller):负责接收并处理请求,响应客户端;模型(Model):模型数据,业务逻辑;视图(View):呈现模型,与用户进行交互;SpringMVC相当于spring的一个子框架,所以SpringMVC与spring能够天然的结合使用,无需整合。访问的流程:...转载 2019-05-23 11:28:57 · 231 阅读 · 0 评论 -
java中多线程的实现方法
一、进程与线程进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。二、什么是多线程多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于...原创 2019-07-03 16:55:48 · 545 阅读 · 0 评论 -
JDBC操作详解
什么是JDBCJDBC(Java DataBase Connectivity):Java数据库连接,简单来说,就是用Java语言来操作数据库。JDBC 实现(以MySQL 8.0 为例)加载数据库驱动Class.forName("com.mysql.cj.jdbc.Driver");如果是MySQL 5.x的话使用的是:Class.forName("com.mysql.jdbc.D...原创 2019-05-18 19:24:27 · 267 阅读 · 0 评论 -
单例模式
单例模式顾名思义,单例模式是指在整个程序运行过程中只有一个实例的运行模式,那么怎么能够做到只有一个实例呢?那就是:禁止使用new来创建实例换句话说,就是私有化类的构造方法。当我们把类的构造方法私有化以后,用户不能够再使用new关键字来创建新的实例对象了,这时候就需要我们为用户提供实例来使用。这个时候问题就出来了,我们为用户提供的这个实例应该在什么时候创建呢?因为我们为用户创建实例的时候可...原创 2019-04-17 20:57:52 · 190 阅读 · 0 评论 -
Java读写properties文件(java.util.Properties)
Java对于properties文件的读写可以说是最简单的一个读取、写入配置文件的方法了,在properties文件中,数据是用类似于键值对的存储方式进行存储的。下面就是一个简单的properties文件:username=xm99password=1234567没错,就是这么简单的方式。那么我们想要对properties文件进行操作的时候应该如何操作呢?生成一个properti...原创 2019-04-17 20:33:05 · 745 阅读 · 0 评论 -
DOM解析xml文件(org.w3c.dom、javax.xml.parsers包下的类和接口)
Java操作xml文件的方式Java操作XML文件一共有四种方式:DOMSAXDOM4JJDOM其中DOM和SAX是Java官方为我们提供的方法,不需要我们从外部导包,这里主要讲一下使用DOM解析xml文件。DOM方式解析xml文件使用DOM解析的原理是什么呢?DOM解析是将整个xml文档中的标签看作是一个一个的节点,通过获得节点来逐个对节点进行操作。在这里,我们需要使用Nod...原创 2019-04-17 15:04:46 · 2707 阅读 · 0 评论 -
Java注解(Annotation)
什么是注解?注解,根据字面意思,就是注释和解释,那么为什么说注解是一个注释和解释呢?首先,注解根据它的生命周期可以分为,源码注解、编译时注解、运行时注解源码注解:只存在于源码中,当源码进行编译以后,注解就不存在了编译时注解:存在于源码和字节码文件中,当程序开始运行注解就不存在了运行时注解:不仅存在于源码和字节码文件中,在程序运行时依然存在,并且可以影响程序的运行通俗地说,注解就像是...原创 2019-04-16 15:36:40 · 289 阅读 · 0 评论 -
Java反射(java.lang.reflect)
什么是Java反射Java反射是一种可以让我们在代码运行的时候,动态地获取我们想要创建实例的类信息,使用获得到的类的信息来获得一个程序执行时的对象的一种方法,也就是说,使用反射这种方法,我们不需要在代码中指明我们想要创建什么类型的实例,而是让代码自动地去获取我们想要创建的实例的它的类的信息,这样做,我们可以极大程度地降低程序的耦合程度。反射是一种方法,那么举一反三,我们使用这个思路可以获得类的...原创 2019-04-15 14:12:50 · 7274 阅读 · 1 评论 -
java序列化与反序列化
什么是序列化?什么又是反序列化??序列化(serialization)在计算机科学的数据处理中,是指将数据结构或对象状态转换成可取用格式(例如存成文件,存于缓冲,或经由网络中发送),以留待后续在相同或另一台计算机环境中,能恢复原先状态的进程。那么反序列化就是将序列化的过程反向进行,得到一个对象。怎么序列化一个对象将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说...原创 2019-04-15 11:21:20 · 222 阅读 · 0 评论 -
java输入输出流-----文件操作
java中的输入输出是一种必不可少的操作,那么输入输出是什么意思呢。输入与输出操作的对象都是内存,也就是说输入和输出两个操作是相对于计算机内存来说的输入:程序将磁盘中的数据(也可能来源于键盘输入、网络爬取)拿出来放到内存当中的过程叫做输入。输出:程序将内存中的数据持久化地保存在磁盘中(也可能将数据展示在屏幕上、提交到网络上)的过程叫做输出。知道什么是输入输出了以后,我们就要知道输入输出...原创 2019-04-13 19:14:30 · 381 阅读 · 0 评论 -
java中强大的时间处理工具:Calendar类(日历类)
java中的Calendar类为什么起个名字就叫做日历呢?因为这个类可以让我们像看日历一样得到这个时间的所有属性,你还在为不知道2014年5月7日是周几而苦恼吗?你还在为2005年8月14日是8月的第几周而发愁吗?快来试一试Calendar吧。Calendar的常用属性属性作用YEAR年份MONTH月份DATE同DAY_OF_MONTH,日期DAY_...原创 2019-04-11 17:46:07 · 21507 阅读 · 0 评论 -
java包的作用
applet:提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。Applet是采用Java编程语言编写的小应用程序,该程序可以包含在 HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同。含有Applet的网页的HTML文件代码中部带有 和这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在...转载 2019-04-06 09:05:07 · 953 阅读 · 0 评论 -
java反射机制演变过程以及使用方法
什么是反射反射是一种使java的编译过程从静态编译转变到动态编译的机制,能够有效的降低系统的耦合,是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变。通俗的讲就是反射可以在运行时根据指定的类名获得类的信息。要理解反射,首先我们先明确两个概念:静态编译:在编译时就确定引用类型变量所引用的数据类型,也就是说将引用类型变量的值在编译时就确定下来了,它不会根据程序的运行而发生...原创 2019-04-02 15:06:53 · 256 阅读 · 0 评论 -
从abstract class到Interface
在现实世界的实际开发过程中,人们发现在程序设计过程中有的类中的方法是为了让子类继承的,是为了增强程序的可扩展性而存在的,为了让子类能够强制的重写父类的这个方法,并且参数,返回值,函数名也不能有一点改变,就出现了abstract关键字abstract使用abstract修饰的方法是抽象方法,抽象方法有以下特点:抽象方法只有声明,没有实现,抽象方法必须由子类进行重写实现。abstract 关...原创 2019-04-02 09:03:52 · 421 阅读 · 0 评论 -
java泛型
什么是泛型 在我的理解中,泛型,其实就是把数据类型当作一个变量,声明为T,这个变量会根据传入的变量的数据类型自动赋值。为什么要用泛型 首先,当我们使用泛型的时候,可以通过更少的代码实现更多的功能,原来我们想要实现一个方法的重载需要好几个代码块,然而这些代码块除了参数类型之外没有什么太大的出入,使用了泛型以后,我们可以将这些代码块合并起来,使用一个代码块即可实现所有类型方法。 其次,使...原创 2019-03-31 22:35:28 · 197 阅读 · 0 评论 -
Arrays工具类详解
Arrays类包含用于操作数组的各种方法(如排序和搜索)。 该类还包含一个静态工厂,可以将数组视为列表。如果指定的数组引用为空,则该类中的方法都抛出一个NullPointerException ,除非另有说明。该类中包含的方法的文档包括实现的简要描述 。 这些描述应被视为实施说明 ,而不是说明书的一部分 。 只要规范本身得到遵守,实现者就可以随意替代其他算法。 (例如,sort(Obje...原创 2019-03-31 00:38:19 · 268 阅读 · 0 评论 -
java中使用Arrays.sort()进行排序
1. Arrays.sort(int[] a)这种形式是对一个数组的所有元素进行排序,并且是按从小到大的顺序。 package study05_base; import java.util.Arrays; public class arraysSortTest { public static void main(String[] args) { int[] a...原创 2019-03-31 22:59:34 · 3173 阅读 · 0 评论 -
面向对象之封装、继承与多态
什么是面向对象 世间万物皆对象,以对象的思维去看待这个世界,那么万物皆有自身属性以及自身的活动,对应到编程的对象思维中,那就是每一个对象都有属性和行为。 对象的属性使用变量来描述,因为属性会随着外界状态的改变而改变,比如,你的年龄会随着时间的推进而增长,你的身高会随着你的发育而发生改变。所以属性使用变量来进行描述。 对象的行为使用函数(这是面向过程的叫法,以面向的思维来说,叫做方法)来...原创 2019-04-01 17:01:50 · 238 阅读 · 0 评论 -
java几种常用的排序算法的实现
冒泡排序(BubbleSort)冒泡排序是一种每次找到最值的排序方法,找到最值以后通过比较的过程将它放在数组的一端,下次遍历时就不再去看它,只用将剩下的数组遍历,从剩下数组中找到最值,并将它放到一端。代码如下:package study06_base;public class sort { public static void main(String[] args) { ...原创 2019-04-01 11:24:25 · 266 阅读 · 0 评论 -
java数组详解
java中的数组是一种用来存储固定大小的同类型元素的一种数据结构。数组的声明package study05_base;public class Arrayss { public static void main(String[] args) { // 数组声明 int[] arr1; // 推荐用法 int arr2[]; ...原创 2019-03-30 23:21:05 · 177 阅读 · 0 评论 -
java final修饰符详解
final修饰符 在非访问权限控制符中有一个final修饰符,它可以修饰变量、方法和类 final 表示"最后的、最终的"含义,变量一旦赋值后,不能被重新赋值。final变量: 当final修饰变量的时候这个变量就会变成常量,能被显式地初始化并且只能初始化一次。被声明为final的对象的引用不能指向不同的对象。但是final对象里的数据可以被改变。也就是说final对象的引用不能改变...原创 2019-03-30 09:00:02 · 668 阅读 · 0 评论 -
java数据类型详解
为什么会有数据类型 java是一门强类型语言,每一次使用数据都要先声明这个数据的数据类型,那么为什么会有数据类型呢? 首先,我们要知道,临时数据是存储在内存中的,长期数据是存储在硬盘中的,每一个数据都有它自己的大小,所以每当我们要使用数据的时候,我们需要告诉程序,我们这段数据有多大,需要程序为这段数据分配多大空间,之后由程序来为数据分配空间。 问题来了,怎么告诉程序我们这段数据有多大空...原创 2019-03-29 23:36:14 · 215 阅读 · 0 评论 -
Java基础语法与细节性操作(标识符、修饰符)
1. 基本语法Java大小写敏感。类名首字母应该大写。方法名首字母小写。源文件名要与public的类类名相同。所有Java程序由public static void main(String[] args)方法开始执行。2. 标识符Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。关于Java标识符,有以下几点需要注意:所有的标识符都应该以字母(A-...原创 2019-03-29 19:41:26 · 280 阅读 · 0 评论 -
idea 快捷键整理
idea快捷方式整理 使用idea的最关键的原因就是要增加我的开发效率,那怎么能少了idea的快捷键呢?所以就特意去查了查idea的快捷方式。这是官网给出的快捷方式:Double Ctrl Run Anything Execute commands, such as opening a project, launching a run/debug configuration, ...原创 2019-03-28 19:27:26 · 2020 阅读 · 3 评论