
java
PP_Boy
这个作者很懒,什么都没留下…
展开
-
Spring事务之事务的传播行为
定义:当事务方法被另一个事务方法调用时,必须制定事务应该如何传播,例如:方法可能继续在现有的事务中运行,也可能开启一个新的事务,并在自己的事务中运行。事务的传播行为可以有传播属性指定,Spring定义了7种类传播行为。 举例: •定义 Cashier 接口: 表示客户的结账操作 •修改数据表信息如下, 目的是用户 Tom 在结账...原创 2018-10-07 20:40:22 · 277 阅读 · 0 评论 -
Spring AOP 面向切面技术
1.概念: AOP(Aspect Oriented Programming),是面向切面编程的技术。AOP 基于 IoC 基础,是对 OOP 的有益补充 AOP 之所以能得到广泛认可,主要是因为它将应用系统拆分分了 2个部分:核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的切面 Crosscutting enterprise...原创 2018-09-21 00:37:54 · 360 阅读 · 0 评论 -
java代理
1.概念 动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础,不会动态代理技术,那么在学习Spring这些框架时是学不明白的。 这里明确代理对象的两个概念: 1、代理对象存在的价值主要用于拦截对真实业务对象的访问。 2、代理对象应该具有和目标对象(真实业务对象)相同的方法2.java中的代理"jav...原创 2018-09-21 00:24:31 · 124 阅读 · 0 评论 -
Spring—通过工厂方法配置bean
工厂方法分类:静态工厂方法,实例工厂方法 --静态工厂方法:直接调用某一个类的静态方法就可以返回Bean的实例 --实例工厂方法:即需要先创建实例本身,再调用工厂的实例方法来返回bean的实例 假设:我们现在有一个Car类,类中有brand和price属性 一、使用静态工厂方法 1.静态工厂方法封装类public class StaticF...原创 2018-09-20 00:13:14 · 255 阅读 · 0 评论 -
spring的jdbc操作
使用JdbcTemplate需要的 jar包在这里使用Spring的JDBCTemplate的时候先要把轮子拿过来:除此之外,在Java中操作数据库怎么能不要对应的驱动包呢:JdbcTemplate使用的基本步骤然后再看看Spring的JDBCTemplate的使用大体步骤,这里有一个小例子: 1 package com.spring.test; 2 ...原创 2018-09-25 00:50:48 · 139 阅读 · 0 评论 -
如何在eclipse中安装spring IDE插件
今天试着在自己的eclipse上安装spring IDE插件,因为sping官网上的链接对不上eclipse的版本 所以总是出问题,所以在这里和大家分享一下最省事的安装spring的插件的方法我们使用eclipse的在线安装,废话不说,直接贴图1、help--》Eclipse Marketplace.2、打开"Popular"标签,然后下拉滚动条,找到SpringToolSuit...原创 2018-09-25 00:40:03 · 5167 阅读 · 0 评论 -
java数据库操作JDBC
JDBC:使用 Java 应用程序“操作”数据库的一门技术1.获取数据库连接 //获取数据库的连接 public static Connection getConnection() throws Exception{ //1.获取数据库连接的基本信息 //1.1 创建 Properties 的对象,以流的形式,将配置文件中的基本信息读入程序 ...原创 2018-09-19 00:56:36 · 191 阅读 · 0 评论 -
java中获取路径的方式
1、利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径 2、使用File提供的函数获取当前路径: File directory = new File("");//设定为当前文件夹 try{ System.out.println(di...原创 2018-09-18 00:41:43 · 155 阅读 · 0 评论 -
Linux常用命令整理
1.pwd命令 打印工作目录,当你键入 pwd 时,你是在请你的 Linux 系统显示你的当前位置2.cd命令 :用来改变工作目录 3.ls命令:显示你的当前目录的内容 -a — 全部(all)。列举目录中的全部文件,包括隐藏文件(.filename)。位于这个列表的起首处的 .. 和 . 依次是指父目录和你的当前目录。 ...原创 2018-09-18 00:18:47 · 171 阅读 · 0 评论 -
如何利用java进行网页爬取
工具包:jsoup-1.6.1.jar实现功能:通过给定网址爬取该页面的所有图片实现代码:package validatePin;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStre...原创 2018-09-07 00:35:35 · 591 阅读 · 0 评论 -
java数据结构之ArrayList 和 LinkedList
在java中的List接口下,我们常用的实现类分别是ArrayList和LinkedList,这两者虽然功能几乎一样,但是内部的实现原理却完全不一样ArrayList 采用的是 线性结构Linkedlist 采用的是链式结构 ArrayList 的实现方式(我们这里只是写它的原理代码,真正的ArrayList要比我们现在写的要复杂的多)MyArrayList类packag...原创 2018-09-09 22:31:25 · 170 阅读 · 0 评论 -
java数据结构之快速排序
原理:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。图示:代码实现:public class QuickSort { public static void main(String[] args) { int[] ar...原创 2018-09-09 21:16:28 · 259 阅读 · 0 评论 -
java数据结构之递归(八皇后)问题
八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。 解题思路:由上往下依次向下遍历,那么...原创 2018-09-12 00:31:49 · 569 阅读 · 1 评论 -
java的发展史
在说java发展史之前,我们先看一下java的技术体系sun公司在官方给出的java的技术体系包括:java程序设计语言 各种硬件平台上的java虚拟机 class文件格式 java API类库 来自商业机构和开源社区的第三方java类库我们又把java程序设计语言、java虚拟机、java API类库这三部分被称为jdk,也是java最小的开发环境其中 java se AP...原创 2018-09-02 22:56:16 · 208 阅读 · 0 评论 -
java数据结构之选择排序
一、原理 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕二、时间复杂度:O(n^2)三、图解首先从原始数据中选择选择最小的1个数据,将其和位于第1个位置的数据交换 接着从剩下的n-1个数据中选择次小的一个元素,将其和第2个位置的数据交换 不...原创 2018-09-08 00:26:27 · 182 阅读 · 0 评论 -
java数据结构之冒泡排序
一、原理 依次比较两个相邻的元素,将值大的元素交换至右端。二、图解 三、代码实现/* * 冒泡排序 */public class BubbleSort { public static void main(String[] args) { int[] arr = { 5,3,1,6,8,7,2,4 }; int[] sortArr = mao...原创 2018-09-08 00:08:28 · 136 阅读 · 0 评论 -
lambda表达式
Lambda 表达式在java8发布之后存在,java8以前java语言是不支持Lambda表达式的Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中),可以使代码更加的简洁。一、Lambda表达式的特征可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。 可选的大括号:如果主体包含了一...原创 2018-08-20 20:02:22 · 190 阅读 · 0 评论 -
Mybatis 快速入门
什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data ...原创 2018-09-21 00:46:46 · 149 阅读 · 0 评论 -
Java基础之多线程
一、基本概念 程序:为完成特定任务,用某种语言编写的一组指令的集合,指一段静态的代码 进程:是程序的一次执行过程,或是正在运行的一个程序。 线程:进程的进一步细化,是一个程序内部的一条执行路径,若一个程序可以同一时间执行多个线程,那么它就是支持多线程的。 二、何时需要使用多线程? 程序需要同时执行两个或者多个任务。 ...原创 2018-10-03 17:49:31 · 130 阅读 · 0 评论 -
spring之事物管理
事务简介: ★ 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性。 ★ 事务就是一系列的动作被当成一个独立的工作单元,要么全完成,要么全不完成。事物的属性: 原子性:事务是一个原子操作,由一系列的动作组成,确保动作要么全完成,要么完全不起作用。 一致性:一旦事务的动作完成,事务就被提交,数据和资源就处于一种满足业务格则的一致...原创 2018-10-07 20:09:21 · 222 阅读 · 0 评论 -
Centos下 Nginx安装与配置
Nginx是一款轻量级的网页服务器、反向代理服务器。相较于Apache、lighttpd具有占有内存少,稳定性高等优势。它最常的用途是提供反向代理服务。安装在Centos下,yum源不提供nginx的安装,可以通过切换yum源的方法获取安装。也可以通过直接下载安装包的方法,以下命令均需root权限执行:首先安装必要的库(nginx 中gzip模块需要 zlib 库,rewrite模块需...原创 2018-10-17 22:51:39 · 220 阅读 · 0 评论 -
Spring AOP指定切面优先级
•在同一个连接点上应用不止一个切面时, 除非明确指定, 否则它们的优先级是不确定的. •切面的优先级可以通过实现 Ordered 接口或利用 @Order 注解指定. • 实现 Ordered 接口, getOrder() 方法的返回值越小, 优先级越高. •若使用 @Order 注解, 序号出现在注解中,值越小, 优先级越高. ...原创 2018-09-22 23:52:51 · 273 阅读 · 0 评论 -
Spring AOP 的5中通知
一、AspectJ 1.AspectJ:Java 社区里最完整最流行的 AOP 框架. 2.在 Spring2.0 以上版本中, 可以使用基于 AspectJ 注解或基于 XML 配置的 AOP 二、在 Spring 中启用 AspectJ 注解支持 • 要在 Spring 应用中使用 AspectJ 注解, 必须在 classpath 下包含 AspectJ ...原创 2018-09-22 23:18:43 · 812 阅读 · 0 评论 -
Java设计模式之抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。抽象工厂的介绍意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们...原创 2018-10-05 16:53:32 · 142 阅读 · 0 评论 -
Java设计模式之工厂方法模式
工厂方法模式: 1. 避免了简单工厂的缺点,不完全满足OCP原则(开闭原则) 2. 工厂方法模式和简单工厂模式最大的不同在于简单工厂模式只有一个(对于一个项目或者一个模块而言)工厂类,而工厂方法模式有一组实现了相同接口的工厂类。 类图: 实例代码:package com.pmj.factoryMethod;/** * ...原创 2018-10-05 16:06:10 · 134 阅读 · 0 评论 -
Java设计模式之简单工厂
定义: 就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。类图: 实例代码:package com.pmj.SimpleFactory;/** * 定义一个汽车的接口 * @author PP...原创 2018-10-05 15:33:41 · 123 阅读 · 0 评论 -
Java设计模式之观察者模式(二)
之前我们利用自定义的方式去实现了观察者模式(https://blog.youkuaiyun.com/m0_37618340/article/details/82942857),其实在Java中为我们提供了这样的类和接口,分别是: Observerable类和Observer接口 接下来我们用给定的类实现观察者模式: 首先我们创建目标对象(继承Observable类): ...原创 2018-10-05 11:43:00 · 141 阅读 · 0 评论 -
Java设计模式之观察者模式(一)
观察者模式:Observer 观察者模式主要用于1:N的通知,当一个对象(目标对象subject或Observable)的状态变化时,他需要及时告知一系列对象(观察者Observer),令他们做出相应 通知观察者的方式有两种,分别是: 推:每次都会把通知以官博的形式发送给所有观察者,所有观察者只能被动接收。 ...原创 2018-10-05 11:22:11 · 228 阅读 · 0 评论 -
java中的异常处理
Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮、易于调试。异常之所以是一种强大的调试手段,在于其回答了以下三个问题:什么出了错? 在哪出的错? 为什么出错?在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么可能你没有很好地使用它们。有三个原则可...转载 2018-09-22 00:23:27 · 143 阅读 · 0 评论 -
java内部类
在java中内部类共分为4中,分别是: 常规内部类、静态内部类、局部内部类、匿名内部类。 一、 常规内部类 常规内部类没有用static修饰且定义在在外部类类体中。 1.常规内部类中的方法可以直接使用外部类的实例变量和实例方法。 2.在常规内部类中可以直接用内部类创建对象 。 实例代码: public...原创 2018-09-22 00:13:48 · 126 阅读 · 0 评论 -
IDEA的基本使用
IDEA的基础配置 下载好IDEA,免不了一些配置和个人设置。一些设置问题和操作我放在最后讲,因为不影响我们的 使用。先说一下jdk和tomcat的配置。在首页点击configure,找到project structure,打开。进入project目录,添加sdk,选择添加jdk,选择你安装jdk的目录即可。 2.创建普通的动态web项目这样我们一个简单的web项目就创...原创 2018-09-21 23:56:34 · 236 阅读 · 0 评论 -
Java多线程之线程的通信
线程通信的常用方法: ● wait()方法:令当前线程挂起并放弃CPU同步资源,使别的线程可访问并修改共享资源,而当前线程排队等候再次对资源的访问。 ● notify()方法:唤醒正在排队等待同步资源的线程中优先级最高者结束等待。 ● notifyAll()方法:唤醒正在排队等待资源的所有线程结束等待。使用两个线程打印 1-100. 线程1, 线程2 交替打印 ...原创 2018-10-04 20:59:49 · 164 阅读 · 0 评论 -
Java多线程之锁的释放
释放锁的操作: 1. 当线程的同步方法,同步代码块执行结束时 2. 当线程在同步代码块,同步方法中遇到break、return终止了该代码块,该方法的继续执行。 3. 当前线程在同步代码块,同步方法中出现未处理的Error和Exception导致异常结束。 4. 当前线程在同步代码块,同步方法中执行了线程对象的wait()方法,当前线程暂停并...原创 2018-10-04 20:41:23 · 1168 阅读 · 0 评论 -
Java多线程之线程安全问题
一、线程安全问题存在原因 由于一个线程在操作共享数据的过程中,未执行完毕的情况下,另外的线程参与进行,导致共享数据存在了线程安全问题。二、如何解决线程安全问题? 必须让一个线程操作共享数据完毕以后,其他线程才有机会参与共享数据的操作三、Java中如何实现线程安全:线程的同步机制 方式一:同步代码块 ...原创 2018-10-03 18:04:07 · 142 阅读 · 0 评论 -
java接口
一、如何声明一个接口关键字:interfacepublic interface Name{ //方法或者常量 public void show();}注意:1.在jdk 8 以前,接口中的方法只提供方法名和参数,不能有具体实现,从jdk1.8开始,接口中可以写方法的具体实现 二、如何实现一个接口关键字:implementspublic class St...原创 2018-08-20 19:44:21 · 284 阅读 · 0 评论 -
java的深复制和浅复制
一、什么是深复制和浅复制 深复制: 被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复制了一遍 浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅...原创 2018-08-19 17:03:59 · 175 阅读 · 0 评论 -
Java求最大子列和 与 最大子列(O(n)级)
问题: 求【-2,-4,-7,-20,1,1,1,1,-10,1,1,1,5,-10,10,10,10,-25,10,10,10,10,10,10,-300】这一个集合中,求它子集中和为最大的子集以及最大和。代码实现(求和):static int maxValue(int[] arr) { int maxNum = 0; int positionNum = 0; for (int...原创 2018-07-10 18:14:58 · 358 阅读 · 0 评论 -
Java--按值调用和按引用调用
一、概念 按值调用:表示方法接收的时调用者提供的值 按引用调用:表示方法接收的时调用者提供的变量地址 在Java中总是采用按值调用,方法得到的参数值是一个拷贝。二、实例演示 (1) 在 Java 中,八种基本数据类型和String类型,在方法中不能直接对类中使用该类型声明的变量进行修改。 ...原创 2018-07-16 20:10:45 · 3614 阅读 · 3 评论 -
Java--static(静态)关键字
一、静态变量 静态变量就是用static关键字声明的变量,它属于类中,独立于对象,即无论一个类有多少个实例,它的静态变量只有一份拷贝。所以静态变量也成为类变量, ● 而局部变量则不能声明为静态变量。 ● 可以直接通过类名进行调用进行修改。 ● 在对静态变量设置set方法时,不要使用this关键字,而应该直接用类名进行赋值。比如...原创 2018-07-16 19:39:57 · 260 阅读 · 0 评论 -
Java--final关键字
方法的所发生的原创 2018-07-16 13:32:09 · 87 阅读 · 0 评论