❀Java
文章平均质量分 54
xiaoshuo566
这是一个积累的过程,量变成就质变。
展开
-
Java异常类型:运行时异常、非运行时异常
异常类型分为两类:运行时异常和非运行时异常。一、运行时异常运行时异常(RuntimeException),一般不需要程序员进行捕获。例如:NullPointException,IndexOutOfBoundsException。如果不对该类异常进行catch处理,则在运行时异常发生时会导致当前线程终止或主程序直接终止。二、非运行时异常也就是RuntimeException之外的所有异常。对于该类异常,Java编译器强制要求程序员使用try-catch进行捕获,否则编译失败。例如:如I原创 2020-07-06 10:08:33 · 1693 阅读 · 0 评论 -
《Java并发编程之美》阅读笔记(五)Java并发包中并发List解析
5.1 介绍在Java并发包中的并发List集合只有CopyOnWriteArrayList。CopyOnWriteArrayList是一个线程安全的ArrayList,对其进行的修改操作都是在底层的一个复制的数组(快照)上进行的,也就是使用了读写时复制策略。该类的类图如下:如图,CopyOnWriteArrayList内部维护一个array数组对象来存放具体的数据,Reentrant...原创 2020-01-09 18:31:02 · 218 阅读 · 0 评论 -
《Java并发编程之美》阅读笔记(四)Java并发包中的原子操作类原理解析
JUC包提供了一系列的原子操作类,这些类都是非阻塞算法CAS实现的。相比使用锁实现原子操作这在性能上有很大提高。这一章以AtomicLong类和JDK8中新增的LongAdder类、LongAccumulater类进行实现原理的解析。——————————————————————————————————————————————————————JUC包下提供了AtomicLong,Atomic...原创 2020-01-07 18:28:20 · 268 阅读 · 0 评论 -
《Java并发编程之美》阅读笔记(三)Java并发包中ThreadLocalRandom类原理剖析
第三章节:ThreadLocalRandom类是JDK 7 在JUC包下新增的随机数生成器,它弥补了Random类在多线程下的缺陷。这一张会学习到为何增加该类以及它的实现原理。————————————————————————————————————————————————————3.1 Random类及其局限性java.util.Random类是应用比较广泛的随机数生成类,而且在jav...原创 2020-01-06 18:30:24 · 244 阅读 · 0 评论 -
《Java并发编程之美》阅读笔记(二)并发编程的其他基础知识
2.1 什么是多线程并发编程首先明确并发和并行的区别,并发指的是在同一个时间段内有多个线程任务同时都在执行,且都没有结束;并行指的是在同一个单位时间内有多个线程任务同时都在执行。一个时间段是由多个单位时间积累而成的。区别于并行,并发强调是在一个时间段内,这些线程任务不一定是在同一个单位时间内都在执行。并发:以单cpu的环境为例,为了提高执行效率,多个线程任务是并发执行的。由于cpu只能被一...原创 2019-12-27 18:35:43 · 144 阅读 · 0 评论 -
《Java并发编程之美》阅读笔记(一)并发线程基础
目录一、并发编程线程基础1.1 什么是线程1.2 线程的创建与运行1.3 线程通知和等待 1、wait() 函数2、wait(long timeout)3、wait(long timeout,int nanos)4、notify()函数5、notifyAll()函数1.4 等待线程执行终止的join方法1.5 让线程睡眠的sleep()方法...原创 2019-12-18 18:17:30 · 606 阅读 · 0 评论 -
java参数传递之值传递与引用(地址)传递
开门见山的说,java参数传递存在两种情况:1\参数为基础类型(int,long,short等)时,本质为值传递,即对参数的任何操作都不会对原数据有影响。2\参数为对象(实例化new出来的)时,本质为引用传递,参数地址指向原数据地址,即任何操作都是在操作原数据。...原创 2019-11-14 16:43:41 · 467 阅读 · 0 评论 -
使用RESTful风格开发javaWeb
转自:https://www.jianshu.com/p/91600da4df95在这篇文章中你可以学习到什么是RESTful风格,以及如何实现RESTful风格的javaWeb项目开发。原创 2019-10-31 15:56:40 · 230 阅读 · 0 评论 -
nginx,tomcat,apache三者分别用来做什么,有何区别(转载)
原文地址:https://www.cnblogs.com/mpp0905/p/9502856.html1. Nginx和tomcat的区别nginx常用做静态内容服务和代理服务器,直接外来请求转发给后面的应用服务器(tomcat,Django等),tomcat更多用来做一个应用容器,让java web app泡在里面的东西。严格意义上来讲,Apache和nginx应该叫做HTTP Serve...原创 2019-10-21 18:09:20 · 536 阅读 · 0 评论 -
【java8新特性】之接口的默认方法
声明:(本文章在阅读https://www.runoob.com/java/java8-default-methods.html后,对自己学习内容的记录)在java8中(jdk 1.8 +) 接口中可以定义默认方法和静态方法。这种方法不需要实现类去实现,所以可以避免在接口中添加新方法后,需要修改所有实现类去实现新方法的问题。下面详细讲述;1、默认方法默认方法是一种在接口内已经默认实现的方...原创 2019-08-13 18:27:59 · 203 阅读 · 0 评论 -
【IntlliJ IDEA】使用技巧
1、大括号匹配在大括号附近使用ctrl+[ 、 ctrl+] 可以快速匹配开始和结束的一组大括号;2、快速查询变量、类、文件、代码和执行动作等等使用ctrl+n,然后选择你要搜索的内容类型,再输入具体搜索内容(或要执行的动作); 3、查询某方法被调用的位置让光标处于该方法的位置; 使用ctrl+alt+h ,就能显示有哪些地方调用了该方法; 4、跳到父类接口光标处于子类...原创 2019-08-06 17:05:19 · 444 阅读 · 0 评论 -
【java8新特性】之方法引用与Lambda表达式
在Lamda新特性的支持下,JAVA8中可以使用lamda表达式来创建匿名方法。然而,有时候我们仅仅是需要调用一个已存在的方法(如java中已经定义好的方法),在这时候java8新特性“方法引用”将会进一步简化操作(注意:需要有Lamda的支持)。方法引用的四种形式:引用静态方法-->类名称::static 方法名称; 引用某个对象的实例的普通方法-->示例化对象::普通方法...原创 2019-08-08 16:23:11 · 125 阅读 · 0 评论 -
【java8新特性】之collect(收集器)
1,collect是一个终端操作,它接收的参数是将流中的元素累积到汇总结果的各种方式(称为收集器)2,预定义收集器(Collectors)包括将流元素归约和汇总到一个值.3,预定义收集器(Collectors)可以用groupby对流中元素进行分组或者用partitioningBy进行分区4,收集器可以高效的复合起来,进行多级分组,多级分区和归约 如下: 工厂方...原创 2019-08-08 15:38:55 · 5800 阅读 · 0 评论 -
【逆向工程】配置文件与执行文件
注意引入逆向工程的依赖;配置文件xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://my...原创 2019-08-01 15:56:28 · 383 阅读 · 0 评论 -
【logback】的日志配置
springboot的spring-start会自动引入logback的依赖。 springboot特点:习惯优于配置。 文件请起名:logback.xml 配置内容:这里边还配置了不同级别的日志,输出到不同文件中。 <?xml version="1.0" encoding="UTF-8"?><!-- create by ice 2017-09-20 start ...原创 2019-08-09 14:32:56 · 203 阅读 · 0 评论 -
【压缩文件】的文件添加和解压、以及文件的【内容追加】
1、依赖引入 <!-- io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>...原创 2019-08-09 16:48:55 · 623 阅读 · 0 评论 -
【java】之多线程编程
菜鸟教程:https://www.runoob.com/java/java-multithreading.html原创 2019-08-19 14:42:59 · 106 阅读 · 0 评论 -
【Redis缓存】在Springboot中的使用
首先,关于Redis的下载和安装百度一下,就有了。在Springboot中的使用:1、引入Redis的依赖,如下: <!-- redis缓存依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot...原创 2019-08-14 16:46:57 · 184 阅读 · 0 评论 -
zookeeper、redis和mongodb是什么
MongoDB[1] 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。存储BSON格式(Binary Json)的数据,格式基本于Json相同。Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。ZooKeeper是一个分布式的,开放源码的分...原创 2019-09-24 17:05:47 · 462 阅读 · 0 评论 -
【Spring Cloud】实现微服务
转载收藏好文章,供自己学习使用利用Spring Cloud实现微服务(七)- 内部调用利用Spring Cloud实现微服务(六)- 服务网关利用Spring Cloud实现微服务(五)- 负载均衡利用Spring Cloud实现微服务(四)- 微服务实现与注册利用Spring Cloud实现微服务(三)- 业务领域驱动微服务设计利用Spring Cloud实现微服务(二)–领域驱...原创 2019-09-25 15:23:37 · 95 阅读 · 0 评论 -
【线程同步】之使用【同步锁synchronized】实现
·明确概念线程同步:线程同步是指让多个线程按顺序执行(串行),而不是并行(默认情况)。java内置锁(包括同步锁):Java内置锁是一种互斥锁,通过同一个自定义的线程类开启的线程,不论开启几个,都只有一把锁。先获得锁的线程先执行,当其执行完后会释放锁,该锁由其他线程获得并执行该线程。·代码演示(运行结果,自行测试)package com.imooc.demofirst;/** ...原创 2019-09-29 16:40:20 · 161 阅读 · 0 评论 -
【线程同步】之使用【Thread.join()方法】实现
·明确概念线程同步:线程同步是指让多个线程按顺序执行(串行),而不是并行(默认情况)。·代码演示(运行结果,自行测试)package com.imooc.demofirst;/** * @Author: tongys * @Date: 2019/8/19 */public class ThreadTest { //测试线程同步:线程同步是指让多个线程按顺序执行(串行...原创 2019-09-29 16:58:15 · 494 阅读 · 0 评论 -
spring笔记之第二部分
Spring_day02总结今日内容AOP的概述 AOP 的底层实现 Spring 的AOP 使用AspectJ 实现AOP Spring JdbcTemplate 使用 AOP的概述: 什么是AOP: AOP Aspect Oriented Programing 面向切面编程 AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、...转载 2018-11-12 18:19:49 · 142 阅读 · 0 评论 -
设计模式三大类和六大原则
一、三大类别设计模式分为三大类:`创建型模式:对对象的实例化过程进行抽象,这使得一个系统可以不用关心这些对象是如何创建,组合,呈现的,对于类创建模式来说通过使用继承改变实例化的类,对于对象创建模式来说通过使用代理来实例化所需要的对象。共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。`结构型模式:通过对多个类和对象进行组合得到复杂结构的类,一般使用继承或者成员变量引用形式来实...转载 2019-04-19 19:22:38 · 189 阅读 · 0 评论 -
关于Filter过滤器的使用
https://www.cnblogs.com/ygj0930/p/6374212.html 这位Nutty大佬的博客写的很清楚详细了。看起来很明了。特此转载。转载 2019-04-18 21:18:28 · 121 阅读 · 0 评论 -
基于注解的aop,实现拦截controller进行登陆校验
·目标:我们想要在跳转到一个页面之前,进行是否登陆的校验,只有已经登陆了,才能进入这个页面。·实现步骤:1、导入aop相关jar包 <!--AOP--> <dependency> <groupId>org.springframework</groupId> <artifactId>s...原创 2019-04-09 21:19:02 · 1468 阅读 · 0 评论 -
逆向工程搭建
一、创建一个项目二、导入相关jar包(百度)基本是:mybatis的、myabtis-generate(逆向工程)的、jdbc连接池的、mysql的(注意依赖的版本要与你安装的mysql版本对应)三、编写generatorConfig.xml配置文件(重点)<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE genera...原创 2019-03-01 15:16:48 · 296 阅读 · 0 评论 -
声明式事务配置报错:but was actually of type 'com.sun.proxy.$Proxy**'解决
错误描述:Caused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named '****' is expected to be of type '****' but was actually of type 'com.sun.proxy.$Proxy**'的两种解决方法这是我再做一个教务...转载 2018-11-29 17:09:50 · 7141 阅读 · 1 评论 -
spring事务的传播机制与事务挂起
·事务的传播机制:(不是JDBC事务管理)用来解决业务层的事务之间调用的问题。 PROPAGATION_REQUIRED :支持(使用)当前事务,如果不存在事务就创建一个新事务 *方法A中调用方法B: 如果方法A有事务,B方法就使用方法A的事务。如果A没有事务,就创建一个新事务。(A,B在同一个事务中) PR...原创 2018-11-10 15:45:04 · 9210 阅读 · 0 评论 -
spring笔记之第一部分
Spring_day01总结今日内容Spring框架的概述 Spring的快速入门 Spring 工厂接口 在MyEclipse 配置Spring的xml文件提示 IoC容器装配Bean(xml配置方式) Ioc容器装配Bean(注解方式) 在web项目中集成Spring Spring 整合 junit4 测试 Spring框架学习路线: Spring的IocSp...转载 2018-11-07 10:58:11 · 114 阅读 · 0 评论 -
spring配置文件的所有约束
这里是所有约束:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http:转载 2018-11-09 11:18:08 · 605 阅读 · 0 评论 -
使用JDK动态代理和CGLib代理生成代理对象来增强方法
*以下操作的前提是引入spring相关jar包*在实际spring开发中,不需要手写代码来生成代理对象。可以通过配置文件的方式来完成。一、使用JDK动态代理注意事项:JDK动态代理使用的前提是:代理的对象必须至少实现了一个接口。1、接口和实现类(代理对象)public interface UserDao { public void add(); public void u...原创 2018-11-06 19:32:06 · 680 阅读 · 0 评论 -
关于如何使用json数据
*当你拿到一个json数据,例如: var data 接收到了一个json数据,你可以先用data.toString()查看json数据是什么样子的,从而你会得到 ↓[{"address":"背景","oid":3},{"address":"伤害","oid":4}]。 类似这样的一个数据。*它像是数组里边放了map,所以你可以用 data[0].address 得到 “背景”,原创 2018-10-15 20:20:41 · 4159 阅读 · 0 评论 -
使用cookie保存与获取用户信息(用户名,密码等,可以自己设置保存哪些)
1·保存·用户登录后必然会执行后台的验证方法,当验证通过后将用户信息保存到cookie中。 System.out.println("用户【" + username + "】验证通过!"); String cookieName="user"; String value = username;//username通过方法中传递的参数得到 Cookie cookie...原创 2018-08-13 11:06:17 · 12149 阅读 · 0 评论 -
关于正则表达式
必备知识:较为常用的元字符包括: “+”, “*”,以及 “?”。 “+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。 “*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。 “?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。几种常用的正则表达式形式:分段匹配:^[a-z]+[1,9]{2,}$ ...原创 2019-05-08 17:05:06 · 106 阅读 · 0 评论 -
SSM框架的理解
一、SSM的介绍:SSM框架是 springMVC、spring、mybatis的整合,是标准的MVC模式。 分为四层:view层、controller层(控制层)、service层(业务层)、DAO层(持久层)。 springMVC负责请求转发和视图管理,spring实现业务对象的管理,mybatis负责数据的持久化操作。二、3部分:springMVC:客户端发送请求到Dispa...原创 2019-05-09 20:51:52 · 913 阅读 · 0 评论 -
java三大特征
封装:封装就是将一个对象的属性和操作结合成一个独立的整体,并尽量隐藏其内部的操作细节。 继承:继承就是,子类继承父类的特征和行为,使子类具有父类的一些方法。父类中private修饰的方法,不能被子类具有;父类中static修饰的方法,不能被子类重写,即便子类中有与父类中同名的静态方法,二者也没有任何关联多态:多态就是同一个行为具有不同的表现形式。多态的三个必要条件:继承、重写、父类引...原创 2019-05-15 21:40:15 · 2303 阅读 · 0 评论 -
【java8新特性】之lambda表达式
lambda表达式作用:1、用于实现简单的接口。2、遍历集合 重要特征如下: 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。...原创 2019-08-01 15:17:06 · 120 阅读 · 0 评论 -
java中使用【apache poi】来创建和解析excel
引入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.16</version> <...原创 2019-08-01 15:04:55 · 504 阅读 · 0 评论 -
【log4j2】日志配置
背景 log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量、可配置的审计型日志、基于插件架构的各种灵活配置等。官方配置文档:http://logging.apache.org/log4j/2.x/manual/configuration.html1、所需jar1)maven配置<dep...原创 2019-08-05 16:38:52 · 262 阅读 · 0 评论