自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java String类

String类的获取功能:int length():获取字符串的长度 char charAt(int index):获取指定索引位置的字符int indexOf(int ch):返回指定字符在此字符串中第一次出现的索引 为什么这里是int ch而不是char ch呢? 因为我们知道’a’ 和 97都是指的字符 ‘a’,但是定义为int类型的既可以写97也可以写’a’,但是如果定义成c

2017-09-30 21:33:42 205

原创 面向对象思想的设计原则,设计模式的六大原则

面向对象思想设计原则: 1、单一职责原则 2、开闭原则 3、里氏替换原则 4、依赖注入原则 5、接口分离原则 6、迪米特原则 单一职责原则 其实就是常说的”高内聚,低耦合。也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个。在设计模式中,所有的设计模式都遵循这一原则。 开闭原则 核心思想是:对扩展开放,对修改关闭。 其实开闭原则的意

2017-09-30 19:49:14 393

原创 线程的生命周期图

线程的生命周期线程的一些状态: 1、新建:创建线程对象 2、就绪:线程有执行资格,没有执行权 3、运行:有执行资格,有执行权 4、阻塞:由于一些操作让线程改变了状态,没有执行资格,没有执行权 另一些操作可以把它给激活,激活处于就绪状态 5、死亡:线程对象变成垃圾,等待被回收

2017-09-30 19:45:39 3629

原创 定时器

定时器是一个应用十分广泛的线程工具,可用于调度多个定时任务以后台线程的方式执行。我们可以在指定的事件做某件事情,可以通过Timer和TimerTask类来实现定义调度的功能 java.util Timer类:定时 public Timer():创建一个新计时器 public void schedule(TimerTask task, long delay):安排在指定延迟后执行指定的任务

2017-09-30 17:16:56 188

原创 多线程创建的四种方式

多线程的创建之—-继承Thread类继承Thread类。并重写run()方法,然后启动线程 1、自定义MyThread类,继承Thread类 2、在MyThread类中重写run方法 3、创建MyThread类的对象 4、启动线程对象(start方法是Thread类的方法) 1、举个小例子: MyThread类:public class MyThread extends Thread

2017-09-30 16:46:28 1707

原创 java线程组和线程池的概念

Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。默认情况下,所有的线程都属于主线程组。ThreadGroup类: public class ThreadGroup extends Object implements Thread.UncaughtExceptionHandler:线程组表示一个线程的集合。此外,线程组也可以

2017-09-30 15:13:29 964

原创 线程状态图及执行路径

常见执行情况:

2017-09-30 13:13:08 533

原创 线程间通信(生产者与消费者问题)

线程间通信:不同种类的线程针对同一个资源的操作。 通过设置线程(生产者)和获取线程(消费者)针对同一个学生对象进行操作。正常情况下应该是: 1、生产者:先看有没有数据,有就等待,没有就生产 2、消费者:先看有没有数据,有就消费,没有就等待等待唤醒机制Object类提供了3个方法: wait():等待 notify():唤醒单个线程 notifyAll():唤醒所有线程 这些方法的调用必

2017-09-30 11:49:07 399

原创 hibernate自动生成实体类和映射文件

1、创建maven项目并添加相关依赖 在pom.xml中配置相关依赖:<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.1.0.Final</version></dependency><dependency> <group

2017-09-24 19:40:57 6429

原创 java 多线程详解(多线程的创建、同步思想、死锁等)

线程和进程的概念什么是进程? 进程就是正在运行的应用程序,是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。多进程有什么意义? 单进程的计算机只能做一件事情。现在的计算机都支持多进程的。 多进程可以在一个时间段内执行多个任务,提高CPU的使用率。一边玩游戏,一边听音乐是同时进行的吗? 不是。因为单CPU在某一个时间点上只能做一件事情。而我们在玩游戏,或者听音乐的时

2017-09-24 09:51:28 689

原创 eclipse maven整合SSH项目(实现简单的连接数据库实现登录小例子)

1、通过eclipse创建一个maven项目2、配置pom.xml中依赖项,SSH项目所需的jar包<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/PO

2017-09-22 13:52:27 5878 1

原创 hibernate持久化对象的四个状态

持久化操作是Hibernate的核心。Hibernate的实例状态分为4种: 1、瞬时状态(Transient) 2、持久化状态(Persistent) 3、游离状态(Detached) 4、删除状态瞬时状态(Transient) 通过new开辟内存空间创建的实体对象,但是它没有纳入hibernate session的管理之中,如果没有变量对它引用,它将会被JVM(垃圾回收器)回收。瞬时状

2017-09-21 22:12:35 1970

原创 hibernate 延迟加载 load和get方法

延迟加载延迟加载: 当hibernate从数据库中加载某个对象时,不加载关联的对象,而只是生成了代理对象。使用session中的load的方法(在没有改变lazy属性,属性值为true的情况下)获取到的也是代理对象。 立即加载: 当Hibernate从数据库中加载某个对象时,加载关联的对象,生成实际的对象。使用session中的get的方法获取到的也是实际对象。 延迟加载的好处:

2017-09-21 09:56:49 1001

原创 Hibernate 单向多对一、单向一对多、双向一对多关联关系详解

一对多关系是最普遍的映射关系。比如部门和职工 一对多:从部门的角度,一个部门对应多个职工 多对一:从职工的角度,多个职工对应一个部门 数据库表中结构: 表 department:did departname 表 Employee:eid   ename   esex   did 工具类:SessionFactoryUtils .java,用来创建session工厂,后面的测试类的代码中

2017-09-19 22:11:57 5688 7

原创 理解hibernate hibernate工作原理

Hibernate是一个开放源代码的对象关系映射框架。       Hibernate对JDBC进行了非常轻量级的对象封装,它将POJO(Plain Ordinary Java Object:简单的java对象,实际就是普通JavaBeans)与数据库表建立映射关系,是一个全自动的orm(Object Relational Mapping:对象关系映射)框架,hibernate可以自动生成SQL语

2017-09-18 22:47:15 4199

原创 maven+hibernate实现对MySql数据库的增删改查

创建maven项目:file - - > new - - >maven project 我的目录结构如下: 1、配置pom.xml项目对象模型<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocatio

2017-09-18 19:40:29 1294

原创 ONGL表达式

OGNL是对象图导航语言(Object-Graph Navigation Languaged)的缩写,他是一种功能强大的表达式语言,通过简单一致的表达式语法,可以存取Java对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型的转化功能。他使用相同的表达式去存取对象的属性。如果吧表达式看作一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与java对象之间沟通的桥梁。OGNL是

2017-09-17 20:47:16 6217

原创 struts2自定义拦截器

拦截器原理: 当请求struts2的action时,struts2会查找配置文件,并根据其配置的拦截器对象,添加到一个列表,然后一个一个地调用列表中的拦截器。 自定义拦截器一般有两类:类拦截器和方法拦截器自定义类拦截器自定义类拦截器:继承抽象类 AbstractInterceptor ,并重写 intercept方法public class MyClassInterceptor extend

2017-09-17 16:27:06 194

原创 struts2验证框架

数据验证就是对数据的合法性进行检查,只允许合法的数据进入应用程序。一般情况都会使用Javascript客户端脚本进行页面提交数据的验证。例如:注册页面需要验证用户名和密码的长度,如果长度不符合要求则不允许客户端提交数据,就更用去验证数据的真实性的问题了。但是,如果客户端禁止浏览器运行javascript,则验证无法起到作用(这样是很危险的,因为可以提交危险的信息内容,例如sql注入)。那么在这种情况

2017-09-17 13:27:47 271

原创 struts2获取前台传递过来的数据的三种方式

struts2获取前台传递过来的数据可以通过属性驱动和模型驱动两种方式获得。属性驱动1、使用变量的方式 前台:form action="mylogin_login" method="post"> table> tr> td>account:td> td>input type="text" name="acco

2017-09-17 11:52:17 6445

原创 struts2 常用常量配置详解

指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 <constant name="struts.i18n.encoding" value="UTF-8" /> 开发模式下使用可以打印出更详细的错误信息<constant name="struts.devMode" value="true" /> 动态方法调用 !<cons

2017-09-17 11:00:39 239

原创 Struts2访问Servlet API的三种方式

struts2访问ServletAPI的方式有:解耦合方式和耦合方式解耦合方式(推荐)(间接访问) 通过ActionContext类来实现。但是只能获得request对象,而得不到response对象。 ActionContext是action的上下文对象,action运行期间所用到的数据都保存在ActionContext中,例如session会话和客户端提交的参数等信息。//Acti

2017-09-16 23:17:56 281

原创 struts2--动态方法调用的三种方式

一般情况下,我们是通过实现action中execute方法来实现请求处理,这样子一个action中就只能写一个方法,当我需要实现很多方法的时候写多个action显然是很不合理的,因此就需要使用动态调用来实现。方式一:指定method属性 也就是说通过在struts.xml文件中通过配置action标签的method属性来设置即可。 但是这个方法有一个缺陷,当一个action中有很多方法的时候就需

2017-09-16 10:53:14 13430

原创 使用eclipse创建struts2项目

创建项目file - - ->新建Dynamic Web Project(如果没找到这三个单词也可以直接在other里面搜索即可)- - >next…- - >finish即可 我的项目结构如下: 导入所需jar包可以去这里下载:http://download.csdn.net/download/qq_36748278/9981431 ,然后复制到项目的WEB-INF下的lib文件夹中即可

2017-09-16 09:30:51 3968

原创 struts2的工作原理 及优缺点

一个请求在Struts2框架中的处理大概可以分为以下几个步骤 : 1、客户端初始化一个指向Servlet容器(比如Tomcat)的请求。 2、这个请求会经过一系列的过滤器(filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin),最终会到达FilterDispatch

2017-09-14 21:44:36 400

原创 File类

File类:文件和目录路径名的抽象表示形式 1、构造方法: public File(String pathname):根据一个路径得到一个File对象 public File(String parent,String child):根据一个目录和一个子文件/目录得到一个File对象 public File(File parent,String child):根据一个父File对象和一个子文件

2017-09-10 20:26:23 182

原创 java异常

public class Throwable extends Object implements Serializable :Throwable 类是 Java 语言中所有错误或异常的超类。 public class Error extends Throwable:Error类 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。 public class Exce

2017-09-10 17:20:09 560

原创 Map集合的四种遍历方式

map集合的四种遍历方式:public class MapDemo2 { public static void main(String[] args) { //创建集合对象 Map<String, String> map = new HashMap<String, String>(); //创建元素并添加到集合 map.put("

2017-09-10 12:50:42 321

原创 TreeSet保证元素的 排序和唯一性 的原理

TreeSet是如何保证元素的排序和唯一性的呢? 通过查看TreeSet的add方法,我们发现它的底层是通过一个Map集合的put方法实现的,因此我们只要去找这个put方法的源码就知道了,我们发现这个Map是NavigableMap类型的,但是NavigableMap居然是个接口,那怎么办呢?于是我们就要想到去找这个NavigableMap接口的实现类看这个实现类的put方法即可。 于是我

2017-09-09 17:26:12 6204 5

原创 jquery插件stepy的用法详解

1、首先去 http://www.jq22.com/jquery-info3178 这个网站下载所需要的插件。 2、然后把所需要的jquery.min.js、jquery.stepy.js、jquery.stepy.css这三个文件引入到你的项目中。 3、编写代码<!DOCTYPE html><html> <head> <meta charset="utf-8" /

2017-09-09 09:33:14 1301

原创 java源码解析

1、集合的toString方法的作用原理是什么呢?public static void main(String[] args) { Collection c = new ArrayList(); c.add("I"); c.add("am"); c.add("here"); System.out.println(c);}输出:[I, am, here]现在我们

2017-09-07 21:40:19 1145

原创 HashSet集合是如何做到存储元素唯一,没有重复元素的呢?

为什么HashSet存储字符串的时候,当字符串内容相同的时候它只存储一个值呢?public class HashSetDemo { public static void main(String[] args) { HashSet<String> hs = new HashSet<String>(); hs.add("I"); hs.add("he

2017-09-04 22:43:53 1264

原创 StringBuffer、String、StringBuilder的用法以及他们的区别

StringBuffer的作用是什么呢? 我们知道String是final类型的,是不可变的对象,我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,不仅耗时,而且还浪费空间。但是使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象并改变对象引用,节省了内存。因此在字符串需要经常改变内容的时候,我们通常不适用Stri

2017-09-03 13:34:50 387

原创 网络编程(IP、端口、协议)

网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。网络模型:计算机网络之间通信的规则。分为OSI(Open System Interconnection)开放系统互联模型和TCP/IP模型 1、物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0

2017-09-02 20:33:13 2902

原创 网络编程实现聊天功能(UDP协议)

进行聊天室的开发需要先了解一下基础的知识。可以先看完我的上一篇文章后再来看这个小程序,会更加的有帮助。http://blog.csdn.net/qq_36748278/article/details/77803561UDP协议的Socket通信下面举个小例子来深入了解一下UDP协议的Socket通信: 1、首先会有一个发送端和一个接收端 2、应该是接收端先启动,然后处于等待状态,等待发送端发送数

2017-09-02 16:02:27 4944

原创 jquery实现ajax无刷新效果

1、get请求和post请求 语法:jquery.get(url,[data],[callback],[type]) 语法:jquery.post(url,[data],[callback],[type])参数:url是必须的,其他三个都是可选的参数。           url:待载入页面的url地址           data:要发送的key/value参数           ca

2017-09-02 09:52:15 1866

原创 jquery的autocomplete

1、需要引入jquery-ui.css、jquery.js、jquery-ui.js这三个文件。具体文件可以去官网下载。 2、写一个输入框:<input type="text" id="autoComplete" name="ename"> 3、在这个输入框上面绑定autocomplete方法。source的值就是数据源的一个JSON字符串,必须要转换成JSON字符串才可以,所以同时要导入相应的

2017-09-01 20:00:37 1605

原创 java连接MySql数据库的BaseDAO

1、首先我在根目录下创建了一个driver.properties文件用来保存一些参数,方便后期修改 内容如下:DRIVER = com.mysql.jdbc.DriverURL = jdbc:mysql://127.0.0.1:3306/student?characterEncoding=UTF-8USER = rootPASSWORD = root2、创建数据库连接的BaseDAO文件

2017-09-01 12:59:05 1343

mybatis generator

mybatis generator可以提高开发速度,这个Eclipse插件可以自动生成Domain、Dao、Map文件。将该工具解压,拷贝features和plugins文件夹到eclipse的安装目录下,重新启动Eclipse即可。

2017-10-10

使用eclipse创建struts2项目所需的jar包

这是创建struts项目所需的jar包。 使用的时候直接复制到项目的WEB-INF文件夹下的jar目录下即可使用。

2017-09-16

fastjson.jar

本资源是一个java的json解析jar包。上传给大家分享一下。 .

2017-09-01

空空如也

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

TA关注的人

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