- 博客(43)
- 资源 (7)
- 问答 (2)
- 收藏
- 关注
原创 android控件框架
Android中的每个控件都会在界面中占得一块矩形的区域,而Android中,控件大致被分为两类ViewGroup 和 View空间ViewGroup空间为父控件可以保含多个View控件,并管理其包含的View控件。上层控件负责下层控件的测量与绘制并传递交互事件。通常在Activity中使用findViewById()方法,就是在控件树中以树的深度优先遍历来查找对应元素。每
2016-06-23 08:36:57 476
原创 c语言中如何实现网络通信
主要函数:------------------------------------------TCP实现服务器与客户端的通信流程//服务器端---服务器是一个被动的角色1.socket //买一个手机2.bind //SIM卡 绑定一个手机号(ip+port)3.listen //待机(等待电话打入)4.acce
2016-06-22 16:22:47 8536 2
原创 linux中利用有名管道实现进程之间的通信
//把源文件中的数据读入到管道文件中#include #include #include #include #include #include int do_copy(int fd_s,int fd_d){ char buf[1024] = {0}; int ret = 0; while((ret = read(fd_s,bu
2016-06-21 10:23:05 2104
原创 linux中如何运行动程序
如有两个一个为test.c 另一个为hello.c我们可这样编译gcc test.c -o wgcc hello.c -o r运行时就可以 ./w ./r它们就相对与 w=a.out
2016-06-21 10:00:45 250
原创 c语言中进程的基本概念
1. 进程 线程进程: 程序的一次运行程序 ----- 进程程序: 都是 可执行程序 windows下:*.exe linux 下: ELF 进程 由程序转换过来的程序---加载到内存--->进程人 ---- 人生---------------------------进程 理解成计算机 世界中的"人"
2016-06-18 10:17:59 1081
原创 c语言中创建多进程
#include #include #include int main(int argc, const char *argv[]){ pid_t pid; int status = 0; //没有初始化时 ,status为随机值 pid =fork();//创建子进程 if(pid //如果pid小与0表示创建子进程失败
2016-06-18 10:07:11 15704 1
原创 如何把void* 类型转变为二维数组
#includevoid init(void *array,int n){ int (*p)[2] = (int (*)[2])array;//注意如果不加括号 int *p[2]它的含义就是数组指针了,在这里把void*类型转变为指针数组并指向二维数组的首地址 int i,j; int count=0; for(i=0;i for(j=0;j
2016-06-18 09:38:41 4220
原创 c语言中的僵尸太及wait的作用
僵尸态进程: 子进程结束啦,按时没有父进程收尸!创建一个僵尸态的子进程:收尸---wait(NULL); //关心子进程的退出,进行子进程的收尸操作僵尸态的进程中: 父进程是存在的,只是没有做收尸操作而已! 但是此时子进程已经结束!根据上述特点,创建一个僵尸态的子进程,通过 ps aux | grep a.out 查看僵尸态子进程u
2016-06-18 09:33:53 1443
原创 c语言中如何创建新的线程
进程的生命周期:[1].创建 --- fork [2].执行 --- a. exec b.子进程实现代码逻辑[3].结束 --- exit _exit 僵尸态进程---wait waitpid 孤儿进程--------------------------------------进程存在的问题:
2016-06-18 07:36:42 15300
原创 理解c语言中的void*用法
void* 它表指向一个地址,这个地址可以为任何类型,二维数组也行。要想获得就进行一些强转注意:它是指向任何类型的地址
2016-06-17 11:22:49 1265
原创 c语言中strtok的使用
函数:[1].strtok char *strtok(char *str, const char *delim); 功能: 分割字符串 参数: @str 要分割的字符串 @delim 分割的标志 返回值: 成功 子字符串指针 失败 NULL#include #include
2016-06-16 08:16:03 384
转载 如何强制删掉文件(特别提示文件不存在)
使用电脑的过程中,经常会遇到,删除一个文件时,提示文件不存在,但是文件又确实存在的情况,下面这个方法可以让你无需安装任何软件,就删除掉。 1、新建一个记事本文件,并输入以下内容: DEL /F /A /Q \\?\%1 RD /S /Q \\?\%1 2、保存文件,并修改扩展名为 .bat,我这里命名为:“把文件拖动到这个图标以强制删除.bat”,方便记
2016-06-14 14:57:22 3863 1
原创 c语言中int *p[4]和 int (*)p[4]区别
1,由于[] 优先级高与*所以int *p[4]它先p[4]是定义数组的形式然后和*结合,*p[4]就是数组指针(一个数组中存放的内容是指针变量)2,int a[4];(a中有4个元素,每个元素为整型)===》a(*p) int (*p)[4];((*p)有4个元素,每个元素为整型)也就是说p所指的对象是有4个整型元素的数组,
2016-06-14 08:08:42 11770 1
原创 c语言中的指针基本概念
1,地址形象化的称为“指针”2, 直接访问:直接按变量名进行的访问 间接访问:即将变量i的地址存放在另一变量中,然后通过该变量来找到变量i的地址,从而访问i的变量 3,一个变量的地址称为该变量的“指针” 如果一个变量专门用来存放另一个变量的地址(即指针),则它称为“指针变量”,指针变量的值是地址
2016-06-14 07:22:20 647
原创 linux中常用文件操作调用系统
1.文件操作[1].打开[2].读写 -- 文件的定位 [3].关闭程序实现方式 两种[1].库函数 (stdio)[2].系统调用(文件IO的内容)stdio:1.打开 fopen2.读写 fgetc fputc fgets fputs ---- 定位 : fseek ftell rewind
2016-06-13 19:29:10 604
原创 Linux中的c语言实现类似迅雷那样的下载
用过迅雷的人都知道迅雷在下载之前它首先在你的电脑中申请一个和要下的文件相同大小的文件。我们这里先分析下如何利用c语言实现。其是迅雷还有个就是断点下载,和多线程下载,这里我不会具体谈: 我们用到的方法有: int fseek(FILE *stream, long offset, int whence); 参数: @stream 要定
2016-06-12 19:04:01 2820 5
转载 android中常用的属性
1、android string.xml 文字中间加入空格android string.xml前后加空格的技巧密 码  这个就代表着空格2、文字单行显示android layout布局文件中TextView、EditView单行显示和输入:文本单行显示:文本输入框单行输入android:singleLine="t
2016-06-12 07:32:52 421
原创 利用c语言实现写入数据
#include#include#include#include//声明一个保存当前时间的方法void savetime(FILE *fp,int count);//声明一个读出文件最后一行数据的方法int readCount(FILE *fp);void test(FILE *fp){ char c; int i=-2;
2016-06-11 21:22:47 2213
原创 c语言中的strlen函数
strlen实际上是,从参数表示的地址往后找,找到第一个'\0',即串尾。然后计算'\0'至首地址的“距离”,即隔了几个字符,从而得出长度。如char a[10]={'1','2',\n','\0'};它的strlen(a)为3
2016-06-11 20:39:21 755
转载 Android中的AsyncTask
AsyncTask是android给我们封装的一套异步消息处理工具。使用这个工具,可以让异步消息的处理变得更加的简单,开发者避免了很多的麻烦。也就是说AsyncTak天生用来被设计做两件事:作者:来源:fuly_android的博客|2015-10-23 15:22 收藏 分享大家都知道,在子线程中是不能更新UI的,必须要采用异步消息处理机制。一般的做法就是在有需
2016-06-11 09:24:17 259
转载 Android中的inflate用法
由于我们很容易习惯公式化的预置代码,有时我们会忽略很优雅的细节。LayoutInflater以及它在Fragment的onCreateView()中填充View的方式带给我的就是这样的感受。这个类用于将XML文件转换成相对应的ViewGroup和控件Widget。我尝试在Google官方文档与网络上其他讨论中寻找有关的说明,而后发现许多人不但不清楚LayoutInflater的inflate()方
2016-06-11 08:51:39 1865
转载 Android中的Adapter用法及优化
一般是针对包含多个元素的View,如ListView,GridView,ExpandableListview,的时候我们是给其设置一个Adapter。Adapter是与View之间提供数据的桥梁,也是提供每个Item的视图桥梁。AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验一般是针对包含多个元素的View,如ListView,GridView,Expanda
2016-06-11 08:44:19 574
转载 javaweb中的Servlet
HttpServlet的原理:HttpServlet的时序图Servlet概述生命周期方法:l void init(ServletConfig):出生之后(1次);l void service(ServletRequest request, ServletResponse response):每次处理请求时都会被调用;l voiddestroy():临死
2016-06-11 08:18:24 398
原创 数据库中的QueryRunner的大致实现
public class MyQueryRunner{ private DataSource source; public MyQueryRunner(DataSource source){ this.source = source; } public int update(String sql,Object... params)
2016-06-11 07:58:20 824
转载 c语言中如何判断文件是否存在
C语言判断文件夹或者文件是否存在的方法方法一:access函数判断文件夹或者文件是否存在函数原型: int access(const char *filename, int mode);所属头文件:#include filename:可以填写文件夹路径或者文件路径mode:0 (F_OK) 只判断是否存在 2 (R_OK) 判断写入权限
2016-06-10 10:09:24 7735 1
转载 c语言中如何实现读指定文件位置的数据
#include int main(void){ //文件指针 FILE *fp; //文件路径 char fileName[] = "d:\\file.txt"; //用来保存读取的数字 char strNum[100] = { '\0' }; //用来保存从文件读取的字符 c
2016-06-10 10:03:22 22036
原创 执行器实现返回多个任务并处理第一个结果
package cn.itcast.test1;import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;impor
2016-06-10 09:50:45 610
原创 执行器中执行任务并返回结果
package cn.itcast.test1;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.Executors;import java.util.concurrent.Future;import
2016-06-10 09:24:13 466
原创 如何使用线程池创建执行器对象(有3中常用方式)
1,创建大小可变的线程池对象 Executors.newCachedThreadPool(int number);2,创建固定大小的线程执行器 Executors.newFixedThreadPool(int number); 极端:Executors.newSingleThreadExecutor()方法getPoolSize()获取执行器线程池中实际
2016-06-10 09:02:45 455
原创 什么是线程执行器Executor
执行器框架(Executor Framework),围绕着Executor接口和它的子接口ExecutorService,及实习这两个接口的ThreadPoolExecutor类展开。 这套机制分离了任务的创建和执行。通过使用执行器,仅需要在实现Runnable接口的对象,然后将这些对象发送给执行器即可。执行器通过创建所需的线程,来负责这些Runnalbe对象的创建,实例化及运行。执行器使用了
2016-06-10 08:36:26 807
原创 在锁中使用多条件Condition
与锁绑定的所有条件对象都是通过Lock接口声明的newCondition()方法创建的。在使用条件的时候,必须获取这个条件绑定的锁,所以带条件的代码必须在调用Lock对象的Lock()方法和unlock()方法之间。 当线程调用条件的await()方法时,它将自动释放这个条件绑定的锁,其他某个线程才可以获得这个锁并执行相同的操作,或执行这个锁保护的另一个临界区代码。 备注:当以个线程调用了
2016-06-10 08:24:57 1133
原创 java中的Lock和tryLock方法的详解
Lock接口还提供了另一种方法来获取锁,即tryLock()方法。跟lock()方法最大的不同是:线程使用tryLock()不能获取锁,tryLock()会立即返回,它不会将线程置入休眠。tryLock()方法返回一个布尔值,true表示线程获取了锁,false表示没有获取锁。 ReentrantLock类也允许使用递归调用。如果一个线程获取了锁并且进行了递归调用,它将继续持有这个锁,因此调用
2016-06-10 08:10:11 9264
原创 java中子类继承父类调用利用继承方法时调用this
package cn.itcast.test1;class Parent{ public Object getObject(){ return this; }}class Son extends Parent{ }public class Test1 { public static void main(String[
2016-06-09 08:13:05 1104 1
原创 浅谈java中的多线程及synchronized锁重入的含义
多线程编程有两种方法:1,继承Thread类2,实现Runnable接口注意点:1,Thread.java类中的start()方法通知“线程规划器”此线程已经准备就绪,等待线程对象的run()方法。如果代码thread.run()就不是异步执行了,而是同步。2,Thread.java类也实现了Runnable接口,那么在构造Thread(Runnable targe
2016-06-09 08:02:05 1872
原创 Linux课上学习c语言文件操作及读写
问题如何实现统计某文件中有多少行? 两方法: int fgets(char* s,int size,FILE* stream);//第一个参数是读到那个字符数组里,第二个是读多长,第三个是从那个流里读。返回值如果大于-1就表示读入成功否则失败。 int fputs(char* s,FILE* stream);//第一个参数表示从那个字符数组中读数据,第二个表示把读到的数
2016-06-09 06:44:50 494
原创 理解java垃圾回收机制
常见的垃圾收集策略1,Reference Counting(引用计数) 在每个对象中增加一个引用的计数,这个计数代表当前程序有多少个引用引用了此对象,如果此对象的引用计数变为0那么此对象就可以作为垃圾收集器的目标对象收集。2,跟踪收集器 GC在收集一个对象的时候回判断是否有引用指向对象,在java中引用主要有4种,分别是Strong reference ,Soft refe
2016-06-07 20:30:32 280
原创 对象访问
Object obj = new Object();的访问过程Object obj---->这句会反映到java栈的本地变量表中,作为一个引用类型数据出现。new Object()---->这部分反映到java堆上,形成一块存储了Object类型所有实例数据值得结构化内存,根据具体类型数据及虚拟机实现对象内存布局的不同,这块内存的长度是不固定的。另外,在java堆中还必须包含能查找到此
2016-06-07 20:12:13 361
原创 深入理解java中栈,堆常量池。。
栈: 在函数中定义的一些基本变量数据,还有对象的引用变量都在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当该变量退出该作用域后,java会自动释放掉为该变量所分配的内存空间,该内存空间可立即被另做他用。 栈也叫栈内存,是java程序的运行区,是在线程创建时创建,它的生命是跟随线程的生命,线程结束栈内存也就释放。 栈中的数据
2016-06-07 19:37:34 618
原创 利用C语言中的函数实现文件的Copy
2.读写 (1).按字符进行读写操作 fgetc int fgetc(FILE *stream); 参数: @stream 流指针 返回值: 成功 返回对应字符的int值 失败 返回EOF(end of file) 实际上是一个结束标志 在文件本身并不存在 fputc
2016-06-07 19:02:33 3219
原创 Linux中常用的命令
1.VI 操作vi(vim)linux下的一个标配的 "文本编辑器"2.三种模式: (1).命令模式 vi 默认进入的模式就是命令模式,该模式可以进行一些命令的操作 比如,选中,复制,删除,剪切,粘贴等操作(2).编辑模式(插入模式) --可以进行文本的输入 i键 进入插入模式 a(append)(追加) 在光标后面进
2016-06-06 17:38:59 916
字符串在虚拟机中执行问题
2016-08-02
关于自定义类加载器的问题
2016-03-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人