Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

循环数组 C 语言实现中一个不易发现的 bug

循环数组 C 语言实现中一个不易发现的 bug

前两天写了这学期 Foundamentals of Data Structures 课里最后一个 Project 的程序。题目的难点本来在于思路,可是老师上课已经提醒了很多,于是编程上并没有太大困难。布置下来以后我花了两个小时的时间,把整个程序写完,通过了 PAT 上的测试,把程序交给小组的测试员,又和文档员说了一下这个题的思路,觉得自己已经 Mission Acomplish 了。昨天测试员回复我说有一个数据通不过,程序陷入了死循环。我的第一反应就是她给...
Java访问权限控制

Java访问权限控制

访问权限控制Java提供了访问权限修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的。访问权限控制的等级,从最大权限到最小权限依次是:public、protected、包访问权限(没有关键字)、private。包:库单元包内有一组类,它们在单一名字空间之下被组织在了一起。如果你向导入某个标准库中的类的话,可以使用import关键字。我们之所以要导入,就是要提供一个管理名字空间的机制。所有类成员的名称都是彼此分离的。所以具有相同方法的不同...
理解并掌握 JavaScript 中 this 的用法

理解并掌握 JavaScript 中 this 的用法

按:本文原文来自 Javascript.isSexy 这个网站。这篇文章和文中提到的另一篇文章解决了我一直以来对 this 和 apply, call, bind 这三个方法的困惑。我看过很多国内相关的技术文章,没有一篇能让我彻底理解这些概念的。因此我决定把它译过来,不要让更多的初学者像我一样在这个问题上纠结太长时间。(在学习 this 的同时也了解那些 this 被误解和误用的场景)预备知识:JavaScript 基础知识阅读时间:约 40 分钟Java...
Java 中关于System property 之 file.encoding

Java 中关于System property 之 file.encoding

通过代码System.getProperty("file.encoding")可以获得file.encoding的值问题1:file.encoding的值是什么呢? 这个一开始我认为是操作系统的编码但我错了,它的值为保存每个程序的main入口的那个java文件的保存编码(点击文件-->属性-->text file encoding(other的值),这是使用eclipse 编译器)通过以下的代码即可证明:/*** Test.java源代码文件*...
Java中通过反射调用类中的方法

Java中通过反射调用类中的方法

Java中通过反射调用类中的方法,具体实现起来要注意两点:(1)通过 Class 类的 getMethod 方法取的 Method 对象,并设置调用方法时需要的参数类型。(2)使用 Method 方法调用 invoke 方法,并向该方法传递参数,其参数通常是一个类的对象。个人总结,大致需要以下四个步骤:1. 获取当前类的Class对象。 (通过forName()动态加载类)2. 实例化这个Class对象。 (通过newInstan...
二分查找真的有你想象中那么简单吗?

二分查找真的有你想象中那么简单吗?

二分查找是查找算法里家喻户晓的算法了,其时间复杂度为O(logn),可是如果真的让你立马拿出笔写一个二分查找的函数出来,你确定你可以比较快的完全写对吗? 我们的目的是从一个已经按从小到大的顺序排序好的数组arr中查找值为value的元素的位置。 大体思路我们应该都很清楚:有三个游标,一个low在头,一个high在尾,还有一个mid指向中间,如果要检索的数据value比中间的元素arr[mid]小,那么应该在[low,mid)区间继续查找,即将high指...
Bit-map法处理大数据问题

Bit-map法处理大数据问题

问题引入:1.给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?2.给定一个千万级别数据量的整数集合,判断哪些是重复元素。3.给定一个千万级别数据量的整形数组,对其进行排序。4.在5亿个整数中找出不重复的整数(注意,内存不足以容纳这5亿个整数)。从数据量上看,使用常规的解法(普通排序算法,逐个比较等)明显不合适,所以这里我们引入一个新的解法,就是Bitmap。Bitmap就是用一个bit...
for(int a:i)在Java 编程中的使用

for(int a:i)在Java 编程中的使用

这种有冒号的for循环叫做foreach循环,foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就...
使用 Unity 开发 Android 游戏时如何追踪性能问题

使用 Unity 开发 Android 游戏时如何追踪性能问题

前言两周前我开始用 Unity 开发一个叫 SkyBlocks 的 Android 游戏。游戏已经在 Google Play 上架了,如果你有时间可以下载来玩一玩儿。开发的过程中遇到的最大的问题就是性能问题。我开始慢慢尝试分析到底是什么导致的性能问题以及我该怎么解决它。Sky Blocks 游戏机制这个游戏(SkyBlocks)有点像倒过来的俄罗斯方块和太空入侵者的合体。游戏的玩法就是把方块摆成一行,这是这行方块就会移到游戏面板的最上方。但是这行方块不会像...
快速排序的简单实现

快速排序的简单实现

算法这一块是我的弱项。就以快速排序这样简单的算法,大二学完以后,就没有回顾过了。因为C中有qsort()接口,而C++中也有sort()接口。前一阵子想巩固一下基础知识,回顾了这一著名算法。 因为大学学过,所以大致知道它的一个过程——也就是一个递归。设给定一序列arr[0...N],首先通过arr[0]将arr[0...N]一分为二(我比较懒,不画图了,大家将就看哈),如下: __前半部分,特点:这半部分序列中元素<arr...
《OpenGL编程指南(原书第8版)》——计算着色器

《OpenGL编程指南(原书第8版)》——计算着色器

《OpenGL编程指南(原书第8版)》针对OpenGL4.3版本的各种特性进行了全新阐述,并全面介绍了OpenGL和OpenGL着色语言,第一次将着色器的技术与函数功能为中心的经典技术介绍相结合,呈现最新的OpenGL编程技术。概述由于图形处理器每秒能够进行数以亿计次的计算,它已成为一种性能十分惊人的器件。过去,这种处理器主要被设计用于承担实时图形渲染中海量的数学运算。然而,其潜在的计算能力也可用于处理与图形无关的任务,特别是当无法很好地与固定功能的图形管...
C语言宏定义#define用法

C语言宏定义#define用法

#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。1 #define命令剖析1.1#define的概念#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为...
C++中的常量定义

C++中的常量定义

本篇笔记总结自一次代码检视。一般来说,使用C语言编程时我们都习惯在代码当中使用C当中的宏定义来定义一个数值常量:#define MY_CONST7在C++开发项目时,也会经常存在沿袭C当中常量用法情况。所以,如下的一种写法看起来反倒觉得有些不正宗了:class MyClass {static const int my_const = 7;// ...};站在编译器的角度,这两种写法都是合法的,但在使用的时候总得二中择一,究竟哪种更合适呢?之前有所耳闻在C+...
从AIDL开始谈Android进程间Binder通信机制

从AIDL开始谈Android进程间Binder通信机制

本文首先概述了Android的进程间通信的Binder机制,然后结合一个AIDL的例子,对Binder机制进行了解析。概述我们知道,在Android app中的众多activity,service等组件可以运行在同一进程中,也可以运行在不同进程中。当组件运行在同一进程中进行通信就显得比较简单,在之前的Android线程间通信机制中已经讲过了;而当它们运行在不同的进程中时,就需要使用我们本文中所要介绍的Binder机制了。Binder作为一种进程间通信机制,...
Android线程间异步通信机制源码分析

Android线程间异步通信机制源码分析

本文首先从整体架构分析了Android整个线程间消息传递机制,然后从源码角度介绍了各个组件的作用和完成的任务。文中并未对基础概念进行介绍,关于threadLacal和垃圾回收等等机制请自行研究。基础架构首先,我们需要从整体架构上了解一下Android线程通信都做了哪些工作。我们都知道,进程是操作系统分配资源的最小单位,一个进程中可以启动多个线程来执行任务,这些线程可以共享进程的资源但不分配资源,这里讲的资源主要是只内存资源。Android的线程间消息传递机...
<< 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 >>