自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (3)
  • 收藏
  • 关注

原创 Java集合基础整理

基本集合Conllection下有List set MapList下有ArrayList,LinkListSet下有HashSetMap下有HashMapListArrayList基于数组实现LinkedList基于双向链表实现内存方面:LinkedList相比于ArrayList更占内存,LinkedList除了存储元素,还要存储节点头尾引用。LinkedList的容量是根据元素数量递增和减少的ArrayList容量初始化是10,空集合为0,每次扩容是当前容量的1.

2021-03-25 23:49:04 118

原创 深入理解CAS

什么是CASCompareAndSet 比较交换 :比较当前内存和主内存中的值,如果达到预期,就进行交换,如果没有达到,就一直循环。缺点:1.由于底层是自旋锁,循环较为耗时 2.一次只能保证一个共享变量的原子性 3.存在ABA问题在Java的原子类中存在CAS方法,其方法底层则是调用Unsafe类中的CAS方法。什么是Unsafe类:它是Java用来修改内存中变量的一个后门类,其底层都是C++对于内存变量的直接修改方法。以AtomicInteger的加法为例,可以看到它的底层就.

2021-02-27 22:32:49 148

原创 了解volatile

当我们聊到volatile的时候,只需要围绕它的三个特性来了解即可1.保证可见性2.不保证原子性3.禁止指令重排那么我们则需要细化这三个特性的内容1.volatile是如何保证可见性的呢?在java中还有一个约定的概念JMM(java内存模型)我们在建立线程的同时,线程将会分为主内存+工作内存而我们在进行一些共享内存变量(比如静态变量)的一些操作的时候JMM则有一些同步约定:1.线程解锁前,共享变量必须刷新到主内存中 2.线程加锁前,必须将主内存的共享变量读取到工作内存中 3.

2021-02-27 13:42:17 128

原创 线程池(重点)

线程池:三大方法 7大参数 4种拒绝策略池化技术程序的运行,本质:占用系统资源,优化资源的使用 ===》池化技术线程池,连接池,内存池,对象池...池化技术:事先准备好一些资源,有人要用,就来这里拿,用完之后归还线程池的好处:1.降低资源消耗2.提高响应的速度3.方便管理线程复用,可以控制最大并发数,管理线程线程池三大方法package com.gupao.juc;import java.util.concurrent.Executor;import

2021-02-26 18:10:26 95

原创 多线程的基础补充

目录1.业务:普通的线程代码 Thread2.进程和线程3.并发与并行4.线程有几个状态5.sleep和wait的区别6.lock锁7.sycronized和lock锁的区别8.生产者和消费者问题9.8锁现象什么是JUC java.util.concurrent1.业务:普通的线程代码 ThreadRunnable 没有返回值,效率相比于Callable较低2.进程和线程进程:一个程序一个进程包含多个线程,至少一个java至少两个线程,一个

2021-02-25 11:51:18 227 4

原创 初步认识Springboot的配置和启动Springboot的方式

首先来说一下springboot的启动方式第一种:通过idea运行application中的main方法第二种:在项目根目录下通过mvn spring-boot:run运行第三种:mvn install生成jar包后运行先到项目根目录mvn installcd targetjava -jar xxxx.jar知道这些后我们来看看springboot的配置文件application.pro...

2018-03-27 11:21:56 282

原创 初遇Springboot

1.前言,随着技术发展,项目也在跟着演变,当从SSH转变到用SSM时,虽然可以发现使用SSM从配置到开发一个小项目也花不到一星期的时间,可以说很方便了,可是在网课上看到Springboot时,发现我还是太年轻了,技术早就以及发展到遥不可及的地步。为了今后可能要让自己发展到微服务框架技术中去,还是来学习一下Springboot。2.使用的工具:intellij idea(目前用的最舒服的工具)&am...

2018-03-27 10:40:45 191

原创 jquery datepicker 点击同步刷新echarts数据显示功能

jquery datepicker 点击同步刷新echarts数据显示功能很久没有写过博客了,工作比较忙,最近有时间在做自己的毕业设计,将比较新的功能架构加入到了我的比设里,看上去感觉还是挺高大上的,所以把最近研究比较多,也比较实用的一个前端功能展示给大家需要的前端包:jquery-min.js jquery-form.jsjquery-ui.min.jsjquery-ui

2018-01-11 17:52:23 1481

原创 maven入门之maven的坐标和仓库

构件:在Maven中,任何依赖(jar包,tomcat等),或项目(自己打包的jar,war等)输出都可成为构件。每个构件都有自己的唯一标识(唯一坐标),由groupId,artifactId,和version等信息构成,由此,Maven就可以对构件进行版本控制,管理。groupId:当前Maven构件隶属的项目名。实际开发中,项目往往会模块化开发,如spring-core,spring-aop等,

2017-10-24 22:25:52 738

原创 maven入门之自动建立目录骨架--archetype插件

我们知道,在创建maven目录骨架时呢,如果通过手动创建,都会觉得非常的麻烦,甚至有种想摔键盘的冲动,那么这里,我将教大家,如何通过archetype插件创建符合maven的目录骨架 那么maven规定的目录骨架如下: 那么我们通过一个新的项目进行一个目录骨架的创建: 通过archetype:generate命令进行一个创建 在第一次运行这个代码的时候,maven会自动下载所需的

2017-10-24 20:50:04 419

原创 maven入门之将Jar安装到本地仓库

前面又说如何通过maven来进行一个项目的部署,那么如果我们有多个项目想进行之间类的调用的时候,我们应该如何去做呢 我们这里有两个项目: 其中的maven01中的main中的HelloWorld.java:package com.imooc.maven01.model;public class HelloWorld { public String sayHello() {

2017-10-23 00:18:04 268

原创 maven入门之如何构建maven 创建一个helloworld项目

这篇文章将带我们去了解如何通过maven来构建自己的第一个项目什么是maven?Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成该项目的基础设施建设时间几乎没有,Maven使用标准的目录结构和默认构建生命周期。在多个开发团队环境的情况下,Maven可以设置在上班的路上在很短的时间内为标准。由于大部分的项目设置简单可重复使用,Maven的生活

2017-10-22 21:23:12 1634

原创 一道面试题:通过wait和notify的两个线程交互输出thread1-1...thread1-5,thread2-6...thread2-10...

这是一道关于多线程的面试题,好久没有做过这种多线程的题了,手有点生,那么就来敲一敲package threadDemo;/* * 多线程的交叉打印 */public class threaddemo1 { public static void main(String[] args) { num num = new num(); Thread t1 = n

2017-10-21 23:32:03 780 1

原创 java关键字列表

Java 关键字列表 (依字母排序 共50组): abstract, assert, boolean, break, byte, case, catch, char, class, const(保留关键字), continue, default, do, double, else, enum, extends, final, fin

2017-10-03 10:45:36 835

原创 Java.lang包中的final类汇总

我们知道,final类是不能被子类继承的,而我们常用的一些lang包下的final类有哪些呢: public final class Byte public final class Character public static final class Character.UnicodeBlock public final class Class public final class Co

2017-10-03 10:43:35 258

原创 Java单例的由浅入深----懒汉式的升级(2 原子操作、指令重排)懒汉式的最终版本(volatile)

知识点:什么是原子操作简单的来说,原子操作(atomic)就是不可分割的操作,在计算机中,就是指不会因为线程调度被打断的操作。 比如,简单的赋值就是一个原子操作m=6;例如m原先的值为0,那么对于这个操作,要么执行成功变成了6,要么执行失败变成了0,而不会出现诸如m=3这种中间状态–即使是在并发的线程中。 然而声明赋值就不是一个原子操作:int m = 6;对于这个语句,至少有两个操作: 1、

2017-09-25 16:29:42 564

原创 Java单例的由浅入深----懒汉式的升级(1 双重检查)

单例(singleton)应该是开发者们最熟悉的设计模式了,并且好像也是最容易实现的,基本上大家都可以随手写出,但是我们是否尝试过,逐步去加强我们所写的单例的性能呢什么是单例单例对象的类必须保证只有一个实例的存在 单例实现可以分为两大类: 饿汉式以及懒汉式 他们的区别在于 饿汉式:指全局的单例实例在第一次被使用时构建 懒汉式:指全局的单例实例在类装载时构建 从它们的却别可以看出来,日常我

2017-09-25 15:52:48 315 2

原创 学习mybatis框架中遇到org.apache.ibatis.exceptions.PersistenceException: 问题该怎么解决

org.apache.ibatis.exceptions.PersistenceException: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### The error may exist in cn.itcast.mybatis.mapper/UserMapper.

2017-08-26 15:49:38 743

原创 JAVAEE之Spring学习(五)---SpringMVC注解实现功能的详解

1. 演示接收页面上传的参数通过在方法中写同名参数,SpringMVC会自动接参 前端:<a href="sp/two?name=jack&age=25">演示two</a>后台:@RequestMapping(value = "/two") public String two(String name, Integer age) { System.out.println(n

2017-08-25 13:26:52 419

原创 JAVAEE之Spring学习(五)---目前开发所用的springMVC的架构思想

Spring通过struts1的研究制作了属于自己的struts—SpringMVC 其原理同struts1类似,通过框架拦截,进行访问到框架中的类容,从而只需要通过spring容器进行bean的获取,构造不同功能的类的连接,降低了代码量,并且更清楚直白的体现每个功能之间的衔接ModelAndView类的返回值获取请求页面的详细解析: 示例: 我们构建springMVC框架需要在web.xml

2017-08-24 15:56:17 566

原创 JAVAEE之Spring学习(四)---通过spring注解进行事务处理

在Spring中,它拥有一个专门用来做事务处理的注解:org.springframework.jdbc.datasource.DataSourceTransactionManager 通过配置好的dataSource传给这个类,再通过注解进行需要调用方法的拦截就能够进行事务处理 演示: spring容器:application.xml:<?xml version="1.0" encoding=

2017-08-24 15:35:23 320

原创 java连接数据库出现的Access denied for user 'é??'@'localhost' (using password: YES)问题:

这个问题是连接数据库时没有访问权限:那么原因就应该是一下几种情况1.sql服务没有打开2.用户名错误3.密码错误等在java中有通过配置文件来获取用户名和密码以及driverClass,url进行连接的方法 而在xml的el表达式中${username}实际上是系统用户名而不是数据库连接用户名,也就是计算机的用户名而在java编译读取中,它会通username读取系统用户名而导致连接数据库出错演示如

2017-08-22 14:19:00 5976 3

原创 JAVAEE之Spring学习(三)---通过aop切面实现事务处理

需求:通过切面给项目中的service添加事务处理,让数据库表1添加用户失败后回滚,表2无法添加数据思想:通过aop切面拦截service下的reg()方法,在拦截之前开启事务再进行dao调用,进行事务处理需要注意的地方:在spring方式下获得到的datasource中的getconnection方法还没有进行拦截,在dao层,是通过queryrunner自动调用getconnection()进行

2017-08-22 14:09:19 520

原创 JAVAEE之Spring学习(三)---aop切面(一)

先了解AOP的相关术语: 1.通知(Advice): 通知定义了切面是什么以及何时使用。描述了切面要完成的工作和何时需要执行这个工作。 2.连接点(Joinpoint): 程序能够应用通知的一 个“时机”,这些“时机”就是连接点,例如方法被调用时、异常被抛出时等等。 3.切入点(Pointcut) 通知定义了切面要发生的“故事”和时间,那么切入点就定义了“故事”发生的地点,例如某个类或方

2017-08-20 15:01:06 258

原创 JAVAEE之Spring学习(二)---通过ioc建立mvc模型

文件架构:dao:接口:package cn.hncu.demo3.dao;import cn.hncu.demo3.domain.User;public interface IStudaoa { public User reg(User user);}实现类:package cn.hncu.demo3.dao;import cn.hncu.demo3.domain.User;publi

2017-08-20 14:21:51 189

原创 JAVAEE之Spring学习(一)-----ioc容器

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。 总的来说spring有两个主要功能:ioc+aop:容器+切片Spring—ioc容器Spring通过Spring自身配置容器,将java中的类制作成bean(咖啡豆)放入io

2017-08-20 14:03:55 309

原创 使用hibernate框架制作学生信息查询(多表查询)

需求:通过学院表和学生表进行关联,从浏览器点击学院信息,显示出各学院学生信息功能展示:代码演示:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE HTML PUBLI

2017-08-16 15:24:53 1308

原创 javaEE之Hibernate架构之数据库连接工具模版制作

O/R Mapping 对象关系映射(ORM)技术,操纵数据库 通过使用描述对象和数据库之间映的射元数据将java程序中的对象自动持久化到数据库 在对数据库操纵时需要写mapping文件如<class User> <column > </class>然后通过session.save(user)就能不用写sql语句,自动把user存到数据库 类似工具还有mybatis(更灵活)Hi

2017-08-14 13:50:44 471

原创 javascript之json+ajax技术实现网页异步更新

什么是 AJAX ? AJAX = 异步 JavaScript 和 XML。 AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。 有很多使用 AJAX 的应用程序案例:新浪微博、Google

2017-08-12 14:50:53 1453 1

原创 javaWeb之-------统计网站刷新量

每个网站都有自己的统计访问量,但是少不了服务器会出现意外情况,(如断电。。)所以就需要我们在网站挂机的前段时间将这个数据存起来。我们就需要用到网站最大的容器,application,我们采用观察者设计模式实现ServletContextListener接口。然后在销毁之前将这个数据存起来ps:属于点点知识,大牛请绕道。开发步骤:第一步:实现ServletContextListener接口。 第二步

2017-08-11 15:41:36 464

原创 小项目制作:javaWeb之邮箱验证注册(javaMail+jdbc+log4j)

功能设计: 架构设计: 注册时通过发送邮件方式,传递访问项目激活的servlet进行改写数据库中active的值,通过传递激活码acode来辨别数据库中是否有该账户信息 注册功能实现: servlet:package cn.hncu.reg.servlet;import java.io.IOException;import java.io.PrintWriter;import j

2017-08-11 15:31:06 1206

原创 session钝化与活化

session的活化与钝化就是当用户访问时网站异常,不能丢掉session,所有也必须采用文件存储;和之前那个统计网站访问量一样的原理。class Person implementsHttpSessionActivationListener,Serializable必须实现这两个接口,实现session活化和钝化的要求活化:从硬盘上读取到内存中纯化:从内存中写到硬盘上HttpSessionActiv

2017-08-10 14:09:10 556

原创 全站压缩

我们要用到过滤器和GZIPOutputStream 思路:我们从servlet输出到浏览器需要通过response调用getOutputsteam()或者getWriter()方法来进行输出那么我们就要先对response进行封装,将它里面的这两个方法的返回类型换成ByteArrayOutputStream,将压缩操作放到内存中来执行然后通过过滤器放行,从服务器返回的结果应该再通过过滤器拦截,把获得

2017-08-08 02:28:52 195

原创 通过过滤器进行敏感词汇的屏蔽

我们需要通过过滤器进行拦截,将request中的getparameter()方法进行覆盖把包含敏感词的池中的敏感词进行遍历然后一次屏蔽package cn.hncu.filter;import java.io.IOException;import java.util.List;import javax.servlet.Filter;import javax.servlet.FilterChain

2017-08-08 02:19:01 2190

原创 Filter过滤器+cookie实现自动登录和安全登录

实现思想:我们只要登陆成功就把登录信息存储到cookie中,将用户名存入session中,下一次进入界面只要通过AutoLoginfilter拦截获取cookie,如果有登录信息的cookie就取出来,进行自动登录处理,每一次访问通过secureLogin的filter进行拦截,查询session中的name属性值的容器中有没有值,如果没有重定向到登录页面,如果有就放行登录界面:<%@ page l

2017-08-08 02:14:15 5048

原创 javaWeb三大器之过滤器:Filter

在javaWeb中,Filter过滤器能够代替servlet来做过滤拦截等操作,它就像一个防护网,将前端和后台进行拦截,然后进行多种多样的操作Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级

2017-08-06 01:58:49 385

原创 分页查询 原理以及网页实现固定页码数 搜索的实现

需求:做出类似百度这样页码限制的数据分页查询的功能网页在数据库中通过数据的总行数以及你想要每次获取多少数据,就可以得到想要的页数总页数 = 总行数/pageSize + (行数%pageSize==0?0:1);所以获取数据的方法:package cn.hncu.dao;import java.util.HashMap;import java.util.List;import java.util

2017-08-06 01:41:19 2274

原创 c3p0数据库连接池+threadlocal线程池+DbUtils 进行数据库的操作

为什么要把连接的数据库对象放到threadlocal线程池中?在用户进行数据库访问的时候,我们应该限制他们来对数据库的连接获取个数,应该没人仅限一个,这样可以减轻服务器的负担,并且这种方式能够让其他对象来对数据库进行事务操作时,不用辨别是哪种对象,因为该对象只有一个如何通过连接c3p0数据库连接池获得数据库连接:首先需要c3p0的jar包以及c3p0的配置文件 配置文件的代码如下:<c3p0-co

2017-08-03 00:46:21 993

原创 JAVA 代理模式(Proxy)的原理和实现

代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式一般涉及到的角色有:抽象角色:声明真实对象和代理对象的共同接口;代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理

2017-07-31 13:05:59 602

原创 数据库连接池原理和使用

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 当我们没有数据库连接池时,采用多线程进行数据库连接操作时,可能会出现多进程抢夺资源的情况,而导致在进行事务处理的时候出现各种异常 所以我们需要建立数据库

2017-07-29 23:15:36 652

J2EE核心模式pdf

J2EE核心模式,学习的小伙伴可以来下载 J2EE核心模式,学习的小伙伴可以来下载

2018-08-20

navicatForOracle

navicat的orcale版本,需要的可以下载 navicat的orcale版本,需要的可以下载

2018-08-20

java反编译工具

java的反编译工具,需要的可以下载 java的反编译工具,需要的可以下载

2018-08-20

空空如也

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

TA关注的人

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