------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------集合框架为什么会出现这么多容器?因为每一个容器对数据的存储方式都有不同,这个存储方式称之为:数据结构。一、为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,...
分类:
编程语言 时间:
2015-05-26 22:46:08
阅读次数:
237
1.数据库的设计和搭建用户 、角色、权限、资源以及关联表 用户--角色、角色--权限、权限--资源 总共七张表。springSecurity的登录验证是由org.springframework.security.web.authentication.UsernamePasswordAuthentic...
分类:
编程语言 时间:
2015-05-26 22:43:36
阅读次数:
184
题目如下:
A long-distance telephone company charges its customers by the following rules:
Making a long-distance call costs a certain amount per minute, depending on the time of day when the call is...
分类:
编程语言 时间:
2015-05-26 21:35:30
阅读次数:
1019
1、LinkList.h
#ifndef _LINKLIST_H_
#define _LINKLIST_H_
typedef void LinkList;
typedef struct _tag_LinkListNode LinkListNode;
struct _tag_LinkListNode
{
LinkListNode* next;
};
Link...
分类:
编程语言 时间:
2015-05-26 21:35:26
阅读次数:
197
我们能不能来一个线程报数功能,即第一个子线程输出1,第二个子线程输出2,第三个子线程输出3,……。要实现这个功能似乎非常简单——每个子线程对一个全局变量进行递增并输出就可以了。
代码如下:
//子线程报数
#include
#include
#include
int g_nCount;
//子线程函数
uns...
分类:
编程语言 时间:
2015-05-26 21:34:29
阅读次数:
178
上一篇中我们出现了脏读的问题,但是却没有给出解决办法这一篇中我们这一篇中主要说明一下interlocked系列函数。
下面列出一些常用的Interlocked系列函数:
1.增减操作
LONG__cdeclInterlockedIncrement(LONG volatile* Addend);
LONG__cdeclInt...
分类:
编程语言 时间:
2015-05-26 21:34:37
阅读次数:
200
对于文件操作实际上查看下JDK的File类的相关API即可,对于文件夹的删除主要是一个递归,参考代码如下:
01.public void delFolder(String filePath) {
02.
03. File folder = new File(filePath);
04. if(!folder.isDirectory()){ ...
分类:
编程语言 时间:
2015-05-26 21:33:47
阅读次数:
180
一.前面,我写了一篇Spring框架的基础知识文章,里面没讲到如何配置Spring开发环境,今天就来讲一下,如果大家不知道怎么下载Spring软件包的话,可以看我那篇文章:...
分类:
编程语言 时间:
2015-05-26 21:30:50
阅读次数:
196
1、合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素;
合并排序一般的思路都是创建一个更大数组C,刚好容纳两个数组的元素,先是一个while循环比较,将其中一个数组A比较完成,将另一个数组B中所有的小于前一个数组A的数及A中所有的数按顺序存入C中,再将A中剩下的数存入C中,但这里是已经有一个数组能存下两个数组的全部元素,就不用在创建数组了,但只能从后往前面存,从...
分类:
编程语言 时间:
2015-05-26 21:30:46
阅读次数:
170
桶排序假设输入数据服从均匀分布,平均情况下它的时间代价为O(n);它的工作原理就是将数组分到有限数量的桶子里,每个桶子在使用其他排序算法或者递归的方式使用桶排序。
假如要对大小为[1…1000]范围内的n个数进行排序,可以把桶的大小设为10,那么就会产生100个桶。把输入的n个元素依次放到与之对应的桶中,然后对每个桶在进行排序,这样我们依次输出每个桶中的数据就得到了一个排序好的序列。将元素通过恰...
分类:
编程语言 时间:
2015-05-26 21:30:14
阅读次数:
155
内容:通过获取锁的顺序来避免死锁。例如:银行账户转账问题,两个用户转账的话,如果采用一般的synchronized嵌套的话,容易造成死锁,现在我们通过类似哲学家问题的解决方案一样:先获取同一个锁,才有资格获取下一个。而判断是通过System.identityHashCode()来生成类的hashcode()的返回值作为唯一标识,相同的话,我们再加一把锁。
class Account {
pri...
分类:
编程语言 时间:
2015-05-26 21:28:42
阅读次数:
128
HttpClient下载Bing首页图片import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.Clo...
分类:
编程语言 时间:
2015-05-26 21:26:14
阅读次数:
182
一.同步阻塞IO
BIO就是阻塞式的IO,网络通信中对于多客户端的连入,服务器端总是与客户端数量一致的线程去处理每个客户端任务,即,客户端与线程数1:1,并且进行读写操作室阻塞的,当有你成千上完的客户端进行连接,就导致服务器不断的建立新的线程,最后导致低通资源不足,后面的客户端不能连接服务器,并且连接入的客户端并不是总是在于服务器进行交互,很可能就只是占用着资源而已。
二....
分类:
编程语言 时间:
2015-05-26 21:26:32
阅读次数:
236
第四章 运算符重载
4.1 运算符重载的基本概念
1. 运算符
2. 自定义数据类型与运算符重载
C++提供了数据抽象的手段:用户自己定义数据类型 -- 类
? 调用类的成员函数—>操作它的对象
类的成员函数—>操作对象时,很不方便
? 在数学上,两个复数可以直接进行+/-等运算 Vs. 在C++中,直接将+或-用于复数是不允许的
3. 运算符重载
对抽象数据类型也能...
分类:
编程语言 时间:
2015-05-26 21:26:24
阅读次数:
184
#include
#include
typedef struct TreeNode//二叉树节点声明
{
int value;
TreeNode* left;
TreeNode* right;
}*PtrNode;
void CreatTree(PtrNode *root)//先序建立一个树
{
int tmp;
scanf("%d",&tmp);
if(tmp==-1)
*r...
分类:
编程语言 时间:
2015-05-26 21:22:20
阅读次数:
276
Permanent代: 这部分垃圾回收机制不会回收来自为知笔记(Wiz)
分类:
编程语言 时间:
2015-05-26 21:20:34
阅读次数:
141