`
文章列表
C/C++内存对齐 一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址 ...

遍历问题

题目如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。   基本思路: 1 把问题归结为图结构的遍历问题。实际上6个数字就是六个结点,把六个结点连接成无向连通图,对于每一个结点求这个图形的遍历路径,所有结点的遍历路径就是最后对这6个数字的排列组合结果集。 2 显然这个结果集还未达到题目的要求。从以下几个方面考虑:   1. 3,5不能相连:实际要求这个连通图的结点3,5之间不能连通, 可在构造图结构时就满足改 ...
代码: public class test { public static void main(String arg[]) {   System.out.Println("Hello world"); } } 生成class文件 test Class File Structor: Magic Number----0XCafeBabe 四个字节 Minor Version---0X0000     两个字节 最小版本号 Max   Version---0X002e     两个字节 最大版本号 -------------------------------------- ...
在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则 ...
1.目的 大型软件系统开发时,某些Java组件可能涉及到多种数据库或中间件系统的连接和应用,例如一个数据传递组件需要从DB2中读取数据,并将数据通过中间件 WebSphere MQ发送到其他系统,这类组件功能单一,但却需要连接多 ...
开始之前必须明确strlen的含义,原型为size_t strlen( char *str ); strlen返回字符串的长度,即null(\0)之前的字符的数量。 一 char* 与 char [] 实例加注释: Code void TestCharPointerAndArray() { char *c1 = "abc"; //abc\0常量区,c1在栈上, 常量区程序结束后自动释放。 //c1[1] = 'g'; // 常量不能修改 int i = strlen(c1); // 3 char c2[] = & ...
package projects.debug.learn; import java.util.Collection; import java.util.Iterator; import java.util.Queue; import java.util.concurrent.Semaphore; public class SyncQueue implements Queue { private final Queue mQueue; private final int mCapacity; private final Se ...
package projects.debug.learn; import java.util.concurrent.CountDownLatch; public class CountDownLatchTest { public void CountDownLatchExa() throws InterruptedException { final CountDownLatch countDownBegin = new CountDownLatch(1); final CountDownLatch countDownEnd = new CountDownLatc ...
package projects.debug.learn; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; public class part1 { /** * This static mehthod create CyclicBarrier, and this barrier will sleep 1000 if number of count arrive * @param number of count ...
J2SE 5.0提供了一组atomic class来帮助我们简化同步处理。基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增、减、赋值(更新)操作. 比如对于++运算符AtomicInteger可以将它持有的integer 能够atomic 地递增。在需要访问两个或两个以上 atomic变量的程序代码(或者是对单一的atomic变量执行两个或两个以上的操作)通常都需要被synchronize以便两者的操作能够被当作是一个atomic的单元。 对array atomic变量来说,一次只有一个索引变量可以变动,并没有功能可以对整个array做 ...
往往混淆了这三个函数的使用。 从操作系统的角度讲,os会维护一个ready queue(就绪的线程队列)。并且在某一时刻cpu只为ready queue中位于队列头部的线程服务。 但是当前正在被服务的线程可能觉得cpu的服务质量不够好,于是提前退出,这就是yield。 或者当前正在被服务的线程需要睡一会,醒来后继续被服务,这就是sleep。  sleep方法不推荐使用,可用wait。 线程退出最好自己实现,在运行状态中一直检验一个状态,如果这个状态为真,就一直运行,如果外界更改了这个状态变量,那么线程就停止运行。 sleep()使当前线程进入停滞状态,所以执行sleep()的线程在指 ...
一、介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式 ...
不同线程间进行通信通常有两种简单方法: 方法一 通过访问共享变量的方式(注:需要处理同步问题) 方法二 通过管道流 其中方法一有两种实现方法,即 方法一a)通过内部类实现线程的共享变量 代码如下: Java代码 /**  * 通过内部类实现线程的共享变量  *  */  public class Innersharethread { public static void main(String[] args) { Mythread mythread = new Mythread(); mythread. ...
1 进程与进程通信   进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。Microsoft Win32应用 ...
Java把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量 ...
Global site tag (gtag.js) - Google Analytics