自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 java中线程阻塞之sleep、suspend、join、wait、resume、notify方法解析(一)

java线程的5状态包括create、runnable、running、blocked、dead。create是指用new线程被创建,但是还没有准备好各种资源。runnable是指使用start启动线程,这时候系统会为线程分配除cpu以外的所有需要的资源。running是指cpu调度处于runnable状态的线程使其占用cpu时间片真正开始运行。blocked是指由于某种原因导致r

2015-03-27 13:51:17 2603 1

原创 关于EOF和feof()判断文件读到末尾

判断文件读取是否到了结尾有两种方式,一种是判断fgetc()是否返回EOF(即-1,一个宏定义);另一中是使用feof()函数判断,如果结束返回1,否则返回0;第一种方式局限性很大,因为只有fgetc(),fscanf()遇到结束返回EOF,其他函数fgets()返回char*;另外用while((c = fgetc()) != EOF)也不安全,因为对于二进制非文本文件,这些文件在还没结束的

2015-03-25 19:55:51 4167

原创 java反射Reflection(一)之的类加载器ClassLoader和Class类

反射就是把Java的各种成分映射成相应的Java类。    反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个java的类获取他所有的成员变量和方法并且显示出来。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获

2015-03-23 21:49:43 1493

原创 java中synchronized关键字实现线程同步互斥(一)

java多线程程序现在很常见,和数据库操作系统一样,多个线程会共享一个堆内存,如果不加以控制,不进行线程之间的同步,会造成数据混乱等。先看看下面这个程序:public class TestSynchronized implements Runnable { Timer timer = new Timer(); public static void main(String args[]

2015-03-22 20:15:59 1014

原创 关于计算机中数据类型存储的对齐问题

许多计算机系统对基本数据类型的合法地址做出了一些限制,要求某种类型对象的地址必须是某个值K(通常是2,、4、8)的倍数,这种对齐限制简化了形成处理器和存储器系统之间接口的硬件设计,并且提高了存取效率,虽然可能浪费了空间。所以了解对齐,可以使我们在不降低效率的情况下以最低的空间存储数据不同的硬件结构对对齐有不同的要求,IA32(Intel Architecture 32)硬件无论数据是都对齐,都

2015-03-21 22:39:18 1288

原创 java中的资源路径resource path

java在操作文件的时候必然需要知道这个文件在哪里。每种文件就是一种资源,java获取资源的方式有两种:1.通过java.io包中的类,例如File,其他类和File类似2.通过Class或者ClassLoader先看看File类:An abstract representation of file and directory pathnames.User interfaces

2015-03-20 20:26:15 5287

转载 java中变量的默认初始值

对于类的成员变量不管程序有没有显示的初始化,Java  虚拟机都会先自动给它初始化为默认值。1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。2、单精度浮点型(float)的基本类型变量的默认值为0.0f。3、双精度浮点型(double)的基本类型变量的默认值为0.0d。4、字符型(

2015-03-19 17:11:40 6308

转载 ubuntu下面的软件包管理命令

1、APTAPT (高级软件包工具) 是一个强大的包管理系统,而那些图形化程序如 添加/删除 应用程序 和 Synaptic 都是建立在它的基础之上的。APT 自动处理依赖关系并在系统软件包执行其他操作以便安装所要的软件包。 运行 APT 要求管理权限 。 可以被APT 使用的一些常用命令:安装软件包:sudo apt-get installpackagename  删除软

2015-03-17 11:04:47 706

转载 linux shell下的输入输出重定向

我们有些linux命令输出的结果可能太多,直接在shell中输出看着太麻烦;又或者有些命令的参数太多,不想通过键盘输入;这时候文件输入输出就很方便了。我们可以将输入输出重定向到其他位置,而不是标准的键盘和文本显示器。1重定向1.1     重定向符号>              输出重定向到一个文件或设备 覆盖原来的文件>!             输出重定向到一个

2015-03-17 11:03:54 830

原创 linux 下面vi的缩进代表空格数的更改/添加行号

修改/usr/share/vim/目录下的vimrc文件,在里面添加set tabstop=4set nm

2015-03-16 20:19:03 552

原创 linux-ubuntu14.04下面使用gdb出现的问题

问题:(gdb) list没有符号表被读取。请使用 "file" 命令。 原因其实说的比较清楚,可执行文件中没有符号表,为什么会没有符号表呢,因为符号表实在编译过程中使用的,编译完成后就没有了,要在可执行文件中加入这些信息,就必须在编译链接是指明。方法:gcc -g filename -o filename     这里一定要加上那个-g选项;另外,gdb查看程

2015-03-16 16:00:05 949

原创 c/c++中动态申请二维数组的方式

c/c++中申请二维数组的方式测试代码如下:#include /*二级指针**作为形参,可以接受二级指针**p、指针数组*p[]作为实参的参数,从而传递二维数组*/void print(int **p, int row, int col){ int i=0,j=0; for(i=0;i<row;i++) { for(j=0;j<col;j++) { printf

2015-03-14 13:32:35 850

原创 C语言中的二级指针和二维数组问题

关于二级指针和二维数组两者差别很大,不可以直接用二级指针传递二维数组首先来看看二维数组在内存中是如何组织的呢?实际上,不管是一维还是多维数组,都是内存中一块线性连续空间,因此在内存级别上,其实都只是一维。但是不同的定义使得表现形式不一样,从而有多维数组的概念。访问数组元素其实

2015-03-14 11:58:20 1858

空空如也

空空如也

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

TA关注的人

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