自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 问答 (1)
  • 收藏
  • 关注

原创 数据结构(4)-线性表(循环链表)

概念:将单链表终端节点的指针由空指针改为指向头结点,就使整个单链表形成一个环,这种首尾相接的单链表称为单循环链表,简称循环链表; 循环链表和单链表的区别:尾结点的指针不指向null,而是指向head头结点。/* * 循环链表 * 将单链表终端节点的指针由空指针改为指向头结点, * 就使整个单链表形成一个环,这种首尾相接的单链表称为单循环链表,简称循环链表 */public class M

2017-03-29 18:59:07 372

原创 数据结构(3)-线性表(静态链表)

用数组来描述单链表; 让数组的元素都是由两个数据域组成,data和cur。数组的每一个下标都对应一个data和cur。数据域data用来存放数据,而游标cur相当于单链表中的next,存放该元素的后继在数组中的下标。 优点:在插入和删除操作时,只需要修改游标,不需要移动元素,从而改进了在顺序存储结构中的插入和删除操作需要移动大量元素的缺点; 缺点:没有解决连续存储分配带来的表长难以确定的问题,

2017-03-27 16:22:49 404

原创 数据结构(2)-线性表(单链表结构)

采用链式存储结构,用一组任意的存储单元存在线性表元素,不需要分配存储空间,元素个数不受限制; 单链表结构和顺序存储结构的对比: 1) 时间复杂度:查找(顺序结构O(1),单链表O(n))插入和删除(顺序结构O(n),单链表O(1)) 2) 若线性表频繁的进行查找,很少进行插入和删除操作,采用顺序存储结构; 若需要频繁的插入和删除,宜采用单链表结构;public class SingleL

2017-03-26 19:45:55 376

原创 数据结构(1)-线性表(顺序存储结构)

概念:指的是用一段地址连续的存储单元依次存储线性表的数据元素;用一维数组来实现顺序存储结构; 重要属性:存储空间的起始位置、线性表的最大存储量、线性表的当前长度; 优点:无须为表示表中元素之间的逻辑关系而增加额外的存储空间;可以快速的查看任意位置的元素。 缺点:插入和删除操作需要移动大量元素;当线性表长度变化比较大时,难以确定存储空间的容量;造成存储空间的“碎片”;/* * 1. 顺序结构(

2017-03-26 19:44:12 386

原创 面试-算法(1)

问题:n个人手拉手围城一圈, 从第一个人开始数,数到3该小人退出,问最后剩下的人原来排在第几个位置。 方法1:传统的数组法public class Count3Quit { public static void main(String[] args) { // 假设有500个人 boolean[] arr = new boolean[500];

2017-03-24 19:32:04 292

原创 排序算法(3)-简单选择排序

简单选择排序。 基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换; 然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。 从小到大进行排序。 public class SelectSort { public static void Sort(int[] a) { int position = 0;

2017-03-24 19:10:04 534

原创 排序算法(2)-希尔排序

希尔排序 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。 1、选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1; 2、按增量序列个数k,对序列进行k 趟排序; 3、每趟排序,根据对应的增量ti,将待排序列分割成若干长度为m 的子序列,分别对各子表进行直接插入排序。仅增量因子为1时,整个序列作为一

2017-03-24 18:58:03 268

原创 spring基础(3)-注解

1.注解 (1)组件扫描:Spring能够从classpath下自动扫描,侦测和实例化特定注解的组件。 特定组件包括: @Component:基本注解,标识了一个受spring管理的组件。 @Repository: 标识持久层组件 @Service 标识服务层(业务层)组件 @Controller: 标识表现层组件(2)对于扫描到的组件,Spring 有默认的命名策略:使用非限定类名,第

2017-02-22 10:28:19 412

原创 spring基础(2)-注入方式和配置集合属性

1.注入方式包括三种:属性注入,构造器注入,工厂方法。通常情况下常用的是前两种。 (1)属性注入:通过setter方法<!--通过构造方法来配置bean的属性 --> <bean id="car" class="com.atguigu.spring.beans.Car"> <constructor-arg value="baoma" index="0"></constructor-

2017-02-20 21:20:03 438

原创 spring基础(1)-基本使用

Spring的安装 Help—EclipseMarketPlace中直接搜索进行安装。创建一个spring(HelloWorld)程序 (1)创建一个Java工程,导入spring所必要包(四个必须包和一个日志包) 创建spring的配置文件applicationContext.xml 并配置<?xml version="1.0" encoding="UTF-8"?><beans xml

2017-02-20 16:30:15 420

原创 (2)开发环境搭建-DAO层

在com.itheima.elec.dao 中创建两个接口(公用接口和业务接口) 1.1公用接口public interface ICommonDao<T> { void save(T entity);}1.2业务接口(需要继承公共接口,并且制定泛型T所对应的对象public interface ITestElecDao extends ICommonDao<TestElec> {

2017-02-17 19:41:14 522

原创 (1)开发环境搭建-持久层

使用Hibernate连接mysql数据库。 1.创建测试连接的数据库、表create TABLE Elec_Text( textID varchar(50) not null primary key, textName varchar(50), textDate DateTime, textRemark varchar(500))2.导入开发相应的包 3.持

2017-02-17 15:59:35 450

原创 排序算法(1)-直接插入排序

在要排序的一组数中,假设前面的n-1个数已经试排好顺序的。 现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。public class InsertSort { // 从小到大插入排序 static void Insert(int a[]) { int temp = 0; for (int i

2017-02-16 21:18:39 313

原创 十大机器学习算法及应用

机器学习算法可以分为三个大类——有监督学习、无监督学习和强化学习。(1)有监督学习,对训练有标签的数据有用,但是对于其他没有标签的数据,则需要预估。 (2)无监督学习,用于对无标签的数据集(数据没有预处理)的处理,需要发掘其内在关系的时候。 (3)强化学习,介于两者之间,虽然没有精准的标签或者错误信息,但是对于每个可预测的步骤或者行为,会有某种形式的反馈。监督学习 (1)决策树 决策树是

2016-12-27 21:25:56 1579

原创 数据库连接池

提出:数据库开发中存在问题,每次客户请求,在服务器端都单独创建一个连接操作数据库,当并发访问量非常大,很容易造成内存溢出,而且创建连接、释放连接资源非常消耗服务器性能。 原理: 在服务器端一次性创建多个连接,将多个连接保存在一个连接池对象中,当请求需要操作数据库时,不会为请求创建新的连接,而是直接从连接池中获得一个连接,操作数据库结束,并不需要真正关闭连接,而是将连接放回到连接池中。节省创建连接、释

2016-09-17 21:17:25 256

原创 JDBC事务使用实例(二)

MySQL和Oracle比较 MySQL数据库 默认情况下一条SQL就是一个单独事务,事务是自动提交的。 Oracle 数据库 默认情况下事务不是自动提交,所有SQL都将处于一个事务中,你需要手动进行commit提交/rollback回滚。事务使用 2.1 MySQL中使用事务 start transaction 开启事务(所有对数据表增加、修改、删除操作 临时表进行) rollback

2016-09-17 16:52:51 635

原创 批处理

批处理 关于JDBC编程批处理操作第一种方式:使用Statement接口的批处理 addBatch(sql) 将一条sql 加入批处理到缓存 executeBatch() 执行批处理 将这组sql一次性发送数据库 clearBatch() 清除批处理缓存 缺点:如果sql结构都一样 Insert into user(name,password) valu

2016-09-16 21:33:22 277

原创 SQL注入

1.登陆程序 login.jsp —- LoginServlet(web层) —- UserService(业务层) —- UserDAO(数据层) 1.1 login.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLI

2016-09-16 21:32:24 258

原创 DAO模式

DAO模式:数据层用DAO模式完全将数据源底层实现封装起来,业务层开发人员不需要了解底层实现。通过对象操作完成对数据源增删改查!Business Object :代表数据的使用者 (业务层程序) DataAccessObject :抽象并封装了对底层数据源的操作 (数据层程序) DataSource 数据源 — mysql数据库 TransferObject 表示数据的Java Bean B

2016-09-16 21:27:54 480

原创 JDBC基础--连接和操作

1.JDBC介绍 1.1 核心JDBC接口规范 DriverManager 驱动管理器 Connection 连接 Statement 操作状态 (子接口 PreparedStatement、 CallableStatement) ResultSet 结果集 1.2 第一个JDBC程序 (1)搭建数据库环境: 启动mysql服务、连接mysql

2016-09-16 20:15:59 297

原创 SQL基础(二)

多表设计数据表与数据表之间关系三种:实体之间关系 多对多、一对多、一对一(1)多对多案例:项目和程序员 一个项目可以由多个程序员参与 一个程序员可以参与多个项目开发 建表原则:多对多关系,必须引入第三张数据表,同时引入另两张实体表主键作为外键 (2)一对多案例:老师与课程 一个老师可以教授多门课程 一门课程只能有一个老师教授 建表原则:一对多关系,在多的一方添加一方 主键作为外键 (

2016-09-16 18:27:43 271

原创 SQL 基础(一)

SQL定义 SQL分类:数据库定义语言DDL、数据库操纵语言DML、数据库控制语言DCL;数据库查询语言DQL。 DDL:数据定义语言,定义、修改、删除 数据库内部结构 DML:数据操纵语言 ,对数据表记录 增加、删除、修改 DCL:数据控制语言 用户授权、if 、while、事务管理 DQL:数据查询语言 select查询语句数据库SQL (1)创建数据库: create d

2016-09-16 17:56:09 285

原创 运动员最佳配对问题

一个羽毛球队有男女运动员各n人,给定2个n*n矩阵P和Q。P[i][j]是男运动员i和女运动员j配对组成混合双打是的竞赛优势;Q[i][j]则是女运动员i和男运动员j配合是的竞赛优势。显然,由于技术的配合和心理状态等各种因素的影响,P[i][j]不一定等于Q[j][i]。设计一个算法,计算出男女运动员的最佳配对法,使各组男女双方竞赛优势乘积的总和达到最大。package Test.qddx;impo

2016-06-11 16:10:30 1731

原创 反射技术

多用于框架和组件,写出复用性高的通用程序。 1. class类 获得class类的三种方法 (1)已知类–类名.class (2)已知对象–对象.getClass() (3)完整类名 String格式–Class.forName(完整类名) 常用public void demo1() throws ClassNotFoundException { // 获得class对象

2016-06-02 19:25:28 333

原创 可变参数

主要是用来编写框架。 Arrays.aslist()传个参,传数组,传数组又传参。 可变参数必须在传参列表的最后一个。 原理:int… args 相当于 int[] args 调用时 传入任意个数参数,任意个数的参数,都会被保存到参数数组中。 代码示例:@Test public void demo2() { System.out.println(add(10, 20,

2016-05-31 07:22:15 654

原创 静态导入和自动装箱拆箱

静态导入:导入某个类的静态成员(属性和方法) 语法:import static 可以简化编程,但是可读性较差,所以使用较少,仅作为了解。 自动装箱:将原始数据类型转换为包装类型。 自动拆箱:将封装类型转换为原始数据类型。 示例仅作参考:public void demo3() { int i = 10; doSomething(i); // 调用 doubl

2016-05-31 07:13:43 276

原创 枚举类

定义:对一定范围内的值进行取值。 可读性良好,阻止非法数据。 复习基础: java数据类型:引用类型和基本数据类型。 引用类型:interface class 数组 enum 基本数据类型:int byte short double long float boolean char 每一个枚举值 在编译.class 后成为枚举成员对象(常量) 单例模式: 私有构造器, public s

2016-05-28 13:38:41 235

原创 泛型

应用: 1. 类型安全检查 2. 编写通用Java程序类型安全检查 JDK5 之前集合对象使用问题: (1)向集合添加任何类型对象。 (2)从集合取出对象时,数据类型丢失,使用与类型相关方法,强制类型转换。 泛型语法: List<泛型类型> 规定 List集合中元素类型 泛型技术:只是编译器阶段技术,为javac命令,起到类型安全检查作用,生成.class文件后,泛型信息将会被擦除

2016-05-27 19:19:37 197

原创 STAX解析

STAX 拉模式xml 解析方式 —– 客户端程序,自己控制xml事件,主动调用相应事件方法当使用XML PULL 如果使用Android系统,系统内置无需下载任何开发包,如果想JavaSE JavaEE 使用pull 解析技术 下载单独pull 开发工具包xpp3 —– XML Pull Parser 3 是pull API 代码实现使用pull 解析器 1、去网站上 下载 pull 解析器实现

2016-05-26 20:27:11 1291

原创 SAX解析

SAX 和 STAX 都是 基于事件驱动 —– SAX推模式 STAX拉模式 SAX常用事件 startDocument() —- 文档开始事件 startElemen() —- 元素开始事件 characters() —- 文本元素事件 endElement() —- 元素结束事件 endDocument() —– 文档结束事件 为什么说SAX是推模式解析? 解析器控制xml文件解

2016-05-19 12:22:23 258

原创 DOM解析

JAXP 解析XML DOM解析 SAX解析 java.xml.parsers 存放 DOM和SAX解析器 java.xml.stream 存放 STAX解析相关类 org.w3c.dom 存放DOM解析时 数据节点类 org.xml.sax 存放SAX解析的相关工具类1.DOM 解析 树形结构 元素、属性、文本都被解析成节点,属性节点不属于任何节点的子节点和父节

2016-05-19 12:19:20 310

原创 Scheme

XML Schema 使用一套预先定义好元素和属性 开发的 —– 预先定义好元素和属性 规定了schema 结构和内容 —– 定义schema 规定xml文档 格式和内容预先已经定义好元素和属性 —— 定义schema ——- 定义xml实例Schema本身也是xml ,不像DTD使用单独语法将schema中定义元素,绑定URI地址(名称空间)上,用来唯一标识元素来自哪个schema 。

2016-05-14 09:47:09 270

原创 DTD技术

什么xml使用约束? 使用约束xml文档 — 元素内容格式更加规范 如果企业中xml没有使用约束 —— 通过程序生成xml和解析xml时,不使用约束,代码更加简单XML约束技术 DTD 和 Schema DTD技术快速入门 1、编写数据xml — books.xml 2、编写dtd文件 * 为文档每一个元素(不同名称) <?xml version="1.0" encoding="UTF-8

2016-05-13 16:40:08 304

原创 XML基础

XML技术:与数据相关技术,在企业中xml技术常用来存储数据和传输数据 ,流行原因 —– xml与任何编程语言无关 xml 可用于 php、java、.net 任何编程语言 * 通过标签来 标记数据什么是标记语言? aaa 典型标记语言 HTML —- 用标记 修饰文本信息XML标记随意定义 — 可扩展 XML典型存储和传输应用: 1、XML 充当数据库 保存数据信息 — 试题采用xml保

2016-05-13 16:36:32 250

原创 Junit 单体测试

代码测试: 白盒测试:测试代码结构和逻辑(可见代码测试):黑盒测试:测试代码功能和性能(不可见代码测试) 白盒测试局限性:1、不可能测试所有代码。2 白盒测试难度比极高。 单体测试是一种白盒测试,测试代码功能模块 – 测试代码单个功能junit 是java 的单体测试技术 1、编写junit 在工程引用junit 类库 2、编写单体测试用例 * 创建public void 无参数的方法

2016-05-13 16:33:30 1824

原创 Java 基本操作

1、工程属性:编码集–导入其他工程时,注意编码类型一致。在 properties中。 导入工程时遇到错误可能是JRE没有引入。 java build path 设置 classpath位置 ,指定当前工程引入类库 source中指定.java 文件 和.class文件 存放位置 librialies 指定当前工程引用类库 Java Compiler 指定 .java 采用 那个 版本 编译

2016-05-13 16:29:12 423

原创 最优分解问题-贪心算法

问题描述:设你是一个正整数。现在要求将n分解为若干互不相同的自然数之和,且使这些自然数的乘积最大。 问题分析: (1)对于n<=4 可以验证其分解成几个正整数的和的乘积是小于n的。 (2)对于n>4,能证明其能分解成几个数的和使得乘积不小于n。如果分解成1和n-1,那么对于乘积是没有帮助的;因此假设n分解成a和n-a(2<=a<=n-2),如果a和n-a仍然大于4,那么继续分解直至a,n-a

2016-05-13 08:15:53 8615 1

原创 多机调度问题-贪心算法

设有n个独立的作业{1, 2, …, n}, 由m台相同的机器进行加工处理. 作业i所需时间为t i. 约定:任何作业可以在任何一台机器上加工处理, 但未完工前不允许中断处理,任何作业不能拆分成更小的子作业。要求给出一种作业调度方案,使所给的n 个作业在尽可能短的时间内由m台机器加工处理完成。 多机调度问题是一个NP完全问题,到目前为止还没有完全有效的解法。对于这类问题,用贪心选择策略有时可以设

2016-05-13 08:06:41 9247 1

原创 JDBC使用事务实例

package qddx.JDBC;import java.sql.*;public class useTransaction { public static void main(String[] args) { // TODO Auto-generated method stub Connection conn = null; Statem

2016-05-08 16:30:22 2121

原创 JDBC修改表数据

修改数据时用到update语句,使用这个语句时也要有条件的,指定修改某一行的数据,没有条件判断,则修改全部。package qddx.JDBC;import java.sql.*;public class UpdatebbsVo { public void update(bbsVo vo){ Connection conn = null; PreparedS

2016-05-08 16:25:02 4217

空空如也

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

TA关注的人

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