自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java线程池源码分析

上一篇中我们主要对java线程池的概念,线程池中几个重要参数以及常用的四种线程池做了简单的介绍,今天我们就从源码入手,深入分析线程池是怎么玩的。一、Executor架构请看图:1.Executor是一个接口,它是Executor框架的基础,它将任务的提交与任务的执行分离开来。2.ThreadPoolExecutor是线程池的核心类,用来执行被提交的任务。3.S...

2019-12-11 15:02:05 225

原创 java线程池原理

一、线程池概念 每当提到一个新名词的时候总是会从概念入手,我们首先需要知道这个东西是什么?所谓线程池从字面上理解就是一个装载线程的池子或者说装载线程的容器。这个容器中可以装载多个线程,线程的生命周期交给线程池去管理,方便了我们苦逼的程序员。这样的话我们可以对线程池中的线程进行复用,避免了频繁创建线程以及销毁线程的时间与空间上的开销。二、线程池执行流程线程池任务执行流程...

2019-12-10 14:15:53 685

原创 Mybatis_day01

一、概念1.Mybatis是优秀的持久层框架,对jdbc操作数据库的过程进行了封装,使开发者只需要关注sql本身;程序员只需要通过配置来进行设置二、JDBC存在的问题1.数据库连接创建,释放频繁造成资源浪费2.sql语句在代码中硬编码3.使用preparedStatement占位符号参数存在硬编码4.结果集存在硬编码三、Mybatis架构

2017-11-14 09:30:44 344

原创 SSH整合

一、三大框架整合原理1.struts2与spring整合的契机就是spring可以帮助struts2创建action对象2.Hibernate中的sessionFactory甚至session都交给spring管理,aop事务也交给spring进行管理二、相关导包工作1.Hibernate需要的包(1)hibernate/lib/required

2017-11-08 12:43:39 258

原创 Spring中事务管理

一、事务1.事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败2.事务特性(1)原子性:强调事务的不可分割(2)一致性:事务的执行的前后数据的完整性保持一致(3)隔离性:一个事务执行过程中,不应该收到其他事务的干扰(4)持久性:事务一旦结束,数据就持久到数据库中3.事务并发产生的问题(1)脏读:一个事务读取到了另外一个事务没有提交的数据

2017-11-07 20:04:58 281

原创 Spring中使用jdbc操作

一、JdbcTemplate1.spring中提供了一个可以操作数据库的对象,对象封装了jdbc技术,大家需要知道JdbcTemplate与QueryRunner类似。所以JdbcTemplate对象是依赖于数据源dataSource对象的。2.spring使用JdbcTemplate的方式(1)在dao层中定义JdbcTemplate对象使用步骤:1)首先需要导入相关jar包

2017-11-07 19:42:53 386

原创 Spring中aop概念以及用法

一、Aop概念在软件行业,AOP为Aspect Oriented Programming的缩写,意思是面向切面编程。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一种重要思想。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的重用性,同时提高开发的效率。二、Spring中的AOP概念1.spring能够为容器中管理的对象生成动态代理对象

2017-11-07 10:24:32 604

原创 Spring中使用注解代替xml配置文件

在使用Spring的使用过程中我们需要进行相关配置文件applicationContext.xml的配置,除此之外我们也可以使用注解的方式来代替xml配置文件。1.使用步骤(1)为住配置文件引入新的约束(命名空间),需要导入约束spring-context.xsd约束文件(2)需要导入包spring-aop否则运行的时候会报错(3)开启使用注解代替配置文件,使用案例

2017-11-06 19:49:35 1370

原创 Struts2之拦截器

一、拦截器拦截器,在AOP中用于在某个方法或者字段被访问之前,进行拦截然后在之前或者之后加入某些操作。拦截是AOP的一种实现策略。在Webwork的中文文档解释为——拦截器是动态拦截action调用的对象。它提供了一种机制可以使开发者可以定义在一个在action执行前后执行的代码。也可以在一个action执行前阻止其执行。同时也是提供一种可以提取action中可重用部分的方

2017-11-02 22:54:15 243

原创 Struts2学习笔记

一、Struts2介绍1.是一个基于MVC设计模式的Web应用框架,本质上相当于一个servlet;以WebWork为核心,采用拦截器的机制来吃力客户的请求。2.在传统开发模式中,有一次请求就会对应一个servlet,这样会导致出现很多servlet,然后struts2将所有的请求都先经过一个前端控制器,在前端控制器中实现框架的部分功能,剩下的具体操作要提交到具体的Acti

2017-10-30 23:28:43 318

原创 hibernate_day03

一、Hibernate的一级缓存1.持久态对象能够自动更新数据库得益于Hibernate的一级缓存。2.hibernate的缓存分为一级缓存和二级缓存,Hibernate的这两级缓存都位于持久化层,存储的就是数据库数据的备份。3.Hibernate的一级缓存就是指Session缓存,Session缓存是一块内存空间,用来存放相互管理的java对象,在使用hibernate查

2017-10-25 15:53:52 255

原创 Hibernate_day02(2)

一、持久化类Hibernate是持久层的ORM映射框架,专注于数据的持久化工作。所谓的持久化就是将内存中的数据永久的保存到关系型数据库中。持久化类指的就是一个Java类与数据库表建立了映射关系,那么这个类就称为持久化类。二、持久化类的编写规则(1)持久化类需要提供无参数的构造方法,因为在Hibernate的底层使用反射生成类的对象。(2)持久化类的属性需要私

2017-10-24 23:29:38 321

原创 Hibernate_day02

一、Hibernate创建映射文件(1)在一个实体类所在的包中,创建一个名称为实体名.hbm.xml的映射文件,在该文件中定义了实体类的属性是如何映射到数据库对应表的列上的,具体格式为:<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.h

2017-10-24 21:51:44 289

原创 Spring_day01

一、Spring1.Spring是一个开源框架,主要优势之一就是它的分层架构,分层架构允许使用者哪一个组件。Spring的核心是控制反转控制(IOC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。2.EE开发分成三层结构:(1)WEB层:SpringMVC(2)业务层:Bean管理(IOC)

2017-10-24 17:23:25 358

原创 Hibernate框架

一、什么是Hibernate1.Hibernate框架是当今主流的Java持久层框架之一,是一个开源的ORM(Object Relation Mapping,对象关系映射)框架,它对JDBC进行了轻量级的对象封装,使得Java开发人员可以使用面向对象的编程思想来操作数据库。2.所谓的ORM就是利用描述对象和数据库表之间的映射的元数据,自动把Java应用程序中的对象持久化到关

2017-10-24 00:01:06 371

原创 Maven初步

一、Maven1.Maven是一个项目管理工具,主要就是用来统一开发规范与工具,另外就是管理jar包二、pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation

2017-10-23 17:50:52 226

原创 Redis数据结构(二)

常用命令1)存储Set(1)添加/删除元素sadd key values[value1、value2......]:往set中添加数据,如果该key的值已经存在则不会重复添加srem key member[member、member2.....]:删除set中指定的成员(2)获取集合中的元素smembers key:获取set中所有的成员sismember key

2017-10-23 13:03:43 233

原创 Redis数据结构

(一)Redis是一种高级的key-value存储系统,其中value支持五种数据结构(1)字符串(String)(2)哈希(hash)(3)字符串列表(list)(4)字符串集合(set)(5)有序字符串集合(sorted set)(二)常用命令1)存储String1.赋值(1)set key value2.取值

2017-10-23 00:22:20 216

原创 Linux下使用redis

(一)首先说一个概念就是互联网的三高:(1)High performence:对数据库高并发读写的需求(2)Huge Storage:对海量数据的高效率存储和访问的需求(3)High Scalability && High Availability:对数据库的高可扩展性和高可用性的需求(二)NoSQL数据库的四大分类:(1)键值存储数据:Redis等数据库产品(

2017-10-22 16:10:26 1231

原创 Linux基本命令以及Linux远程连接工具的使用

1.压缩文件的操作命令(1)Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。而一般情况下打包和压缩是一起进行的,打包并且压缩后的文件的后缀名一般是以.tar.gz。(2)打包并压缩命令格式为:tar -zcvf  打包压缩后的文件名  要打包压缩的文件(3)解压缩包(重点)命令格式:tar -xvf  压缩文件例如:tar -xvf xxx.t

2017-10-21 14:19:31 475

原创 Linux系统基本命令

1.             在Linux系统中我们需要知道Linux系统的的目录结构,首先有一个根目录/,在这个根目录下面有许多其他的目录,例如有:bin、boot、dev、etc、home、usr等目录。我们需要知道一些主要使用多个目录,一个就是root目录,这个目录就是超级用户目录,另外一个就是home目录,这个目录是存放用户文件的根目录,其次就是usr目录,这个目录是用于存放共享文件的根目

2017-10-21 08:44:33 243

原创 HttpServletResponse详解

1.     Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象很代表响应的response对象。2.     request和response对象即代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就可以了。要向客户机输出数据,只需要找response对象就可以了。3.     HttpServletRespon

2017-08-02 21:30:41 510

原创 编写项目(servlet版本的用户管理系统)之前台登录界面

1.首先在Eclipse当中创建一个项目叫做UsersManager,然后建立com.sgr.view包2.在这个包当中建立一个servlet叫做LoginServlet,代码如下:package com.sgr.view;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Serv

2017-07-31 12:30:17 606

原创 Servlet使用的一些细节问题

Servlet一些细节:1.     由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问的话,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用元素和元素完成。2.     元素用于注册Servlet,它包含有两个主要的子元素:和,分别用于设置Servlet的注册名称和Servlet的完整类名。3.     一个元素

2017-07-27 12:41:37 344

原创 使用ide开发一个servlet,该servlet显示当前helloworld以及当前日期(MyEclipse)

步骤(1)建立web工程(2)在src目录下创建一个包com.sgr.servlet(3)开发一个Servlet,代码如下:package com.sgr.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import j

2017-07-26 12:43:20 2160

原创 使用继承HttpServlet的方法来开发Servlet

(1)在软件公司90%以上都是通过该方法开发(2)举例说明:在网页上显示hello world以及当前日期。代码如下:package com.sgrweb;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class MyHttpServlet extends HttpServl

2017-07-25 19:08:56 2230

原创 Servlet工作流程

1.Servlet工作流程描述(1)首先用户在浏览器地址栏输入网址http://localhost:8080/sgrweb/MyFirstServlet时候,浏览器会自己先解析主机名localhost,回去本地的host文件去查询主机有没有配备一个ip地址如果在host文件当中查不到的话浏览器会去dns查询。首先localhost代表的是主机,8080代表的是端口号,sgrweb代表的是web

2017-07-25 10:50:15 6722

原创 Servlet部署的时候如何配置web.xml文件

我们知道当我们编写好Servlet的时候需要将Servlet进行部署,此时就需要对web.xml文件进行配置了。具体配置代码如下

2017-07-24 19:06:34 1723

原创 Servlet初步

1.servlet的介绍(1)servlet其实就是java程序(java类)(2)该java程序(java类)要遵循servlet开发规范(3)servlet是运行在服务器端的(4)servlet功能强大,几乎可以完成网站的所有功能(5)是学习jsp的基础2.tomcat和servlet在网络中的位置tomcat里面有很多的功能模块,其中有一块叫做web服务器,这个主

2017-07-24 15:24:32 287

原创 Java编程获取自己主机的IP地址简单案例

import java.net.InetAddress;import java.net.StandardSocketOptions;import java.net.UnknownHostException;public class GetLocalHostTest { public static void main(String[] args) throws UnknownHostEx

2017-07-22 16:46:26 460

原创 Java网络编程相关知识铺垫

1.网络通信的对象准确地讲不是主机,而是主机当中运行的进程。通过域名或IP地址只能定位到主机,而不能定位到进程。端口号就是为了在一台主机上提供更多的网络资源而采取的一种手段,也是传输层提供的一种机制。只有通过域名或者IP地址和端口号的组合才可以唯一确定网络通信中的对象:进程。2.TCP/IP的传输层同时存在TCP和UDP两个协议。TCP是一种面向连接的保证可靠传输的协议。发送方和接收方各有一个

2017-07-21 13:46:45 277

原创 7月21号牛客网做题笔记

1.机器数、真值、原码、反码以及补码(1)机器数:就是数字在计算机当中的二进制的表现形式,是带有符号的,最高位表示符号位,0表示正数,1表示负数。(2)真值:机器数是带有符号的,所以机器数并不能表示真正的数值,需要将符号位单独拿出来看。(3)原码:正数的原码就是它本身,负数的原码需要在最高为加上1以表示负数。0的原码有两种形式分别是[+0]原=00000000B    [-0]原=10

2017-07-21 11:41:39 324

原创 7月19号牛客网做题笔记

1.Java里面Map的key不可以重复但是value是可以重复的。2.将类的成员访问属性权限设置为默认的,则该成员能被同一个包中的类访问。3.Java里面的File类可以创建文件但是不能进行文件的读写,文件的读写是由OutputStream以及InputStream。4.MVC包括三类对象,model是应用对象,view是视图,controller是控制器,它

2017-07-19 12:38:30 473

原创 7月18号牛客网做题笔记

1.Java静态变量是所有对象共享的,不是私有的。2.Java垃圾回收机制存在内存泄露问题,例如访问资源文件、流不关闭以及访问数据库等连接不关闭。3.int   i  = 5;int s = (i++)+(++i)+(i--)+(--i);则最后s的值是多少?s的值为24,因为第一个(i++)是先取值再加1所以第一个括号里面的表达式的值为5,出了括号就是6;++i是先加再取值,所以

2017-07-18 18:38:19 299

原创 Java反射机制初步探索

今天是2017年7月18日。我看了关于Java反射机制的一些知识。首先,Java反射机制就是在程序运行状态当中,不是在程序编译过程当中,对于任意一个类,都可以知道这个类所有的属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取信息以及动态调用对象的方法的功能称之为Java的反射机制。下面首先介绍一下Class类的相关知识,Class 类的实例表示正在运行的 Java

2017-07-18 12:54:39 334

原创 Java分层架构

今天是2017年7月16日。看了Java分层架构的相关知识,所以在这里也算是给大家分享一下吧。Java分层架构主要分成三层,分别为LoginUI(显示层)、LoginBLL(业务逻辑层)、LoginDAL(数据访问层)。这三层只是逻辑上的分层,可以在同一台机器上面。显示层是最接近用户的,主要用来显示数据以及姐收用户的输入。业务逻辑层从DAL获取数据,提供UI显示;从UI获取用户和指令,执行业务

2017-07-16 20:27:03 942

空空如也

空空如也

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

TA关注的人

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