- 浏览: 31237 次
最新评论
文章列表
Java中java.lang.ThreadLocal类不是一个线程的本地实现,而是线程局部变量,也许叫ThreadlocalVar更加合适。ThreaLocal使用非常简单,就是为使用该变量的线程提供一个变量值的副本,每个线程都可以独立的改变自己的副本,而不会与其他线程冲突。 从线程角度看,每个线程都保持一个对其线程局部变量的隐式引用,只要线程是活动并且ThreadLocal实例可访问。线程结束之后,相应的线程局部变量的所有副本都会被垃圾回收。 通过ThreadLocal存取的数据,总是与当前线程有关。Jvm为每个运行的线程,绑定了私有的本地实例存取空间,每一个线程都可以独立地改变空间内容而不 ...
程序1:
void myMalloc(char *s) //我想在函数中分配内存,再返回
{
s=(char *) malloc(100);
}
void main()
{
char *p=NULL;
myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么?
if(p) free(p);
}
程序2:
void myMalloc(char **s)
{
*s=(char *) malloc(100);
}
void main()
{
char *p=NULL;
myMalloc(&p); //这里的 ...
#include <stdio.h>
#include <string.h>
#include <wchar.h>
#include <locale.h> //printf zh language
#include "StrTest.h"
int main(int argc,char*argv[])
{
wchar_t wstr[]=L"Hello World,呵呵!";
setlocale(LC_ALL, "zh_CN.UT ...
1):PostgreSql数据库查询结果随机排列语句
select id,name from article order by random();
1:字符串中不准输入'<','>'字符
function ChkStr(obj)
{
var reg=/^[^<>]+$/;
if (!obj.value) return;
if (!reg.test(o ...
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* StrReplace(char*src,char*rpl,char*dest)
{
char *temp,*buf,*str;
int ind=0,i=0,next=0;
size_t srcLen=0,destLen=0,rplen=0,len=0;
srcLen=strlen(src);
destLen=strlen(dest);
rplen=strlen(rpl);
...
extern关键字理解:
extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b); 则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的, C++的规则在翻译这个函数名时会按照C++编译器的规则进行转换,不同的编译器采用的方法不一样,因为C++支持函数的重载。
例如:
#ifndef _c_h_ #define _c_h_ #ifdef __cplusplus extern " ...
字符数组(一维、二维)(一)
第二节 字符数组
字符数组是数组元素为char类型的一种数组。凡是适合数组的定义和赋值,也都适合于字符数组。由于C语言没有提供字符串类型,字符串一般用一维字符数组来存放,而 ...
下面是我自己的见解,不具有权威性,如果哪位大神发现错误还请指出以共同进步。
int main(int argc,char*argv[]){
char *temp;
temp="King";
printf("temp address is %d\n",temp);//此处temp的内存地址应该指向栈空间的地址。此时未给temp分配堆内存,如果调用srncpy(temp,"abc",4);则会出错,我估计是因为strncpy函数是给分配堆空间的变量赋值的函数,但我们尚未给temp使用malloc或calloc函数分 ...
package net.com.tree;
public class BinaryTree {
public static void main(String[] args){
BinaryTree binaryTree=new BinaryTree();
int[]array={8,3,10,9,1,5};
TreeNode treeNode=binaryTree.bulidSortTree(array);
binaryTree.printTreeInorder(treeNode);
}
public void createTree(TreeNode treeNod ...
package net.com.heap;
import java.util.Arrays;
public class HeapSort {
/*
* fun将给定的一个数组创建成大頂堆
* array代表给定的数组,right代表数组的最大下标值
* */
public void createHeap(int[] array,int right){//创建大頂堆
int middle=right%2==0?right/2-1:right/2;
if(middle*2+2>right){//末尾的叶子节点不对称的情况
if(array[middle]< ...
对int类型的数组利用Arrays类实现降序排序
首先实现Comparator类:
public class SortCompare implements Comparator<Integer>{
public int compare(Integer o1, Integer o2) {
if(o1 < o2){
return 1;
}else if(o1 == o2){
return 0;
}else{
return -1;
}
}
再用Arrays类实现排序时调用如下语句即可:
Arrays.sort(scoresTemp,(Compa ...
#include <stdio.h>
#include <stdlib.h>
int Index(int *array,int left,int right){//用于得到枢轴的坐标
int temp = 0;
int *flag = &array[left];
//开始时写成了flag = array[left],这是不正确的,因为在下面做交换时,只是数据的交换,而不会将数据写到原来的地址值中去。
//也可以通过随机数产生参考值
while(left < right){
while(array[rig ...
package net.com.security;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Test {
public String testMD5(String str){
String result = null;
try {
MessageDigest mdInst = MessageDigest.getInstance("MD5");
byte[] ...