- 浏览: 178333 次
- 性别:
- 来自: 广州
最新评论
-
玉米豆子123:
输入流:只能从中读取数据,不能写入数据 输出流:只能从中写 ...
java IO流(一)----读写文件 -
heshifk:
有那么一段时间,我一直弄不懂输入和输出是怎样定义的,后来终于弄 ...
java IO流(一)----读写文件 -
yellowxiaotian:
...
myeclipse8.6整合SSH(图文)
文章列表
按照稳定性分类:
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,
冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。
时间复杂度:
冒泡法 复杂度为O(n*n),当数据为正序,将不会有交换
直接插入排序:O(n*n)
选择排序:O(n*n)
快速排序:平均时间复杂度log2(n)*n,所有内部排序方法中最 ...
整合SSH思路:
1. 确定顺序:spring->structs->hibernate,或者structs->spring->hibernate,原因我认为,spring的出现影响到hibernate生成的文件,比如sessionFactory,所以一般,包括网上其他很多的教程,都是采用把hibernate放在spring后面。
2. 版本:structs 2.1+spring 3.0 + hibernate 3.3
具体步骤:
1. 创建一个web project:SSH
2. 添加struct ...
java线程(四) 线程池
- 博客分类:
- java SE
1. 原理:
线程池的基本思想是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源 ,类似于数据库连接池等。从系统资源的角度看,
在一个 JVM 里创建太多的线程可能会导致系统由于过度消耗内存而用完内存或“切换过度” , 线程池就可以用于限制任何给定时刻处理的请求数目,避免创建过多的线程导致系统崩溃。 2. 线程池的种类:
固定大小的线程池:创建固定线程数量的线程池,如果任务数大于线程池中线程的数量,那么 ...
菜鸟linux【1】:基础命令
- 博客分类:
- linux
开始学习linux,我安装了redhat enterprise 5,具体的安装过程网上很多,用起来初步觉得不错,学习的书籍是《鸟哥的linux私房菜》,废话不多说,进入正题。
命令的基本形式是:[lcy@localhost~]$ command [options] parameter1 parameter2
注意:这里的command必须是命令或者可执行文件 ,linux区分大小写
1. 简单的日期 date cal
date +%Y/%m/%d
2012/05/20
+%Y/%m/%d就是设定date的格式,
[lcy@localhost~]$ cal
指的是当前这 ...
实际上,准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。
对于此模型,应该明确一下几点:
1、生产者仅仅在仓储未满时候生产,仓满则停止生产。
2、消费者仅仅在仓储有产品时候才能消费,仓空则等待。
3、当消费者发现仓储没产品可消费时候会通知生产者生产。
4、生产者在生产出可消费产品时候,应该通知等待的消费者去消费。
此模型将要结合java.lang.Object的wait与notify、notifyAll方法来实现以上的需求。这是非常重要的。
/**
* Java线程:并发协作- ...
struct 2(一) 之基本原理
- 博客分类:
- struct
一、基本原理
1. 问题
如果是前端的静态HTML,处理网页设计的美术人员可以独立设计
如果是后端的类,程序设计人员可以独立设计而结合HTML与Java代码的JSP,处理网页设计的美术人员与程序设计人员,必须被彼此加入至视 ...
去参加UC的笔试出现了一道题目,没有做出来,郁闷就跟朋友聊聊,没想到最后还是跑回到算法那里去~~~+_+
问题:10个平面最多可以将空间分割几部分
解法一:递推思想
设用n个平面去切割空间的时候是f(n)块。
首先,理解一下,当变为二维的时候,也就是一个平面被N条边最多可以分为几部分:p(n)=1/2[n*(n+1)]+1,这个比较好理解,原理:第N条边可以将p(n)中的n-1条直线相交,从而增加了n部分,于是可推到而出。
现在,当变为三维时,n-1个平面后,放上第n个平面,那么第n个平面上最多有n-1条线,这n-1条线能把第n个平面分为多少部分,那么空间就多了多少部分。 ...
线程同步(二)-Lock(转载)
- 博客分类:
- java SE
之前谈到,java提供了synchronized进行线程同步处理,在JDK1.5后,便出现了Lock,两者的区别是:
主要相同点:
Lock能完成Synchronized所实现的所有功能。
主要不同点:
Lock有比Synchronized更精确的线程语义和更好的性能
Synchr ...
线程同步(二)—synchronized
- 博客分类:
- java SE
当多线程共享一个数据时候,就会容易因为编程不对而导致出现错误。比如,两个线程对一个数据进行修改,由于线程调度的不确定性,导致出现错误。所以,java引进了synchronized进行对共享数据的保护,确保在一个线程在对数 ...
java 线程(一) 线程创建以及启动
- 博客分类:
- java SE
java中有两种方式进行线程的创建
1. 继承thread类创建线程类
步骤:重写Thread类的run方法,也就是线程执行体;创建Thread的子类,也就是创建线程对象;调用start方法记性启动。
//通过继承Thread类来创建线程类
public class FirstThread extends Thread{
private int i ;
//重写run方法,run方法的方法体就是线程执行体
public void run()
{
for ( ; i < 100 ; i++ )
{
//当线程类继承Thread类时, ...
socket的入门程序
- 博客分类:
- java SE
一 .服务器向客户端发送信息
客户端程序
TestClient.java
import java.io.*;
import java.net.*;
public class TestClient {
public static void main(String[] args){
try {
Socket s=new Socket("127.0.0.1",8488);
//从服务器端收到信息
InputStream is=s.getInputStream();
DataInputStream dis=new DataInp ...
java的各种数据类型的转换
- 博客分类:
- java SE
public class Primitive2String
{
public static void main(String[] args)
{
String intStr = "123";
//把一个特定字符串转换成int变量
int it = Integer.parseInt(intStr);
System.out.println(it);
String floatStr = "4.56";
//把一个特定字符串转换成float变量
float ft = Float.parseFloat(floa ...
选择排序算法的java实现
- 博客分类:
- 算法
(一)选择排序
通俗的原理:每次遍历整个数组,找出最小的放在第一位,之后继续找剩下n-1个的最小的,放在第二位,一直这样下去......
public class SelectSort {
public static void opFunction(int[] arr){
//先将找出n个元素中最小的放在第一位,之后,找出剩下的n-1个元素中最小的放在第二位.....
for(int i=0;i<arr.length;i++){
int k=i;
/*第一轮,获取最小的值,原理:取第一个与所有的 ...
java之网站发送手机短信实现
- 博客分类:
- jsp
在一些网站上需要实现给用户手机发送短信,看起来似乎很难实现,其实不然,表面复杂的技术,当你弄明白原理之后就变成了不是问题的问题......不多说,直接看代码
1.原理:给用户发送短信主要是通过移动提供给的接口,而我们网站主要是将短信信息(手机号码、短信内容)发给这个接口,之后就是移动的事情了(根据信息发给相应的用户)....
2. 实例:本例的原理也类似,通过发给将短信信息发给一个与移动有合作关系的网站,该网站提供一个接口,负责接收外界传来的短信信息,处理之后转交给移动发送......
前提:在该网站注册用户,网站会提供一个ID和密码、发送接收的处理方法(也就是action是什么),此 ...
前面已经介绍了如何在服务端去发布服务,现在就来聊聊如何在客户端进行调用服务端的发布的服务类
总的来说,有两种方式:
1. 通过访问服务端提供的服务类的地址进行访问,从而调用指定服务类的方法进行操作,不多说, ...