语言基础
张少锋的博客
Newer
展开
-
判断完全平方数的正确方法
判断完全平方数的正确姿势我们经常碰到判读一个数是不是完全平方数的问题,这个问题看似非常简单,但写的代码往往是有bug的,容易误导初学者。下面对这个问题给出三种思路,并就其中一种最常用且最容易出问题的思路做深入分析。要判断一个数是不是完全平方数,至少应该有两种思路,一种是看它开平方以后是不是一个整数;另一种是在一定区间内枚举x,看是否有一个x的平方是n(我们姑且不论具体实现,这应该是两种最开始的想法)。对于第二种思路,更常见于求一定区间内的数字有哪些是完全平方数,枚举的这种做法本身没什么问题。原创 2017-05-23 20:25:14 · 20744 阅读 · 6 评论 -
功能强大的C语言memset()函数用法
功能强大的C语言memset()函数用法这篇文章是对memcpy()函数的简要介绍,并对这个函数做出几点重要的说明。复制字符串的操作非常常见,为此C库为我们实现了这一操作并封装成函数,我们经常使用的就是strcpy()函数。但strcpy()函数功能在有的时候捉襟见肘,因此这里介绍功能强大很多的memcpy()函数用法。首先当然是函数原型,void *memcpy(void*dest, const void *src, size_t n);原创 2017-05-23 20:01:08 · 983 阅读 · 0 评论 -
C语言signed和unsigned之间的编程陷阱
C语言中的整数可分为有符号整数(signed)和无符号整数(unsigned)。在有符号数和无符号数混合时,如果不注意整数在机器中的表示问题,往往会使程序出现的trick很难找到问题所在。signed类的整数和unsigned类的整数之间可以进行转换,包括显式转换和隐式转换。C语言对隐式转换的规定是什么呢?当带符号数和无符号数之间进行操作的时候,要将带符号数字转换成无符号数字,再进行比较大小等各种操作。下面举一个非常易错的例程。原创 2017-08-08 21:39:00 · 934 阅读 · 0 评论 -
python几个语言特性
Python作为数据科学中最重要的语言,有着不少语言特性,值得初学者注意。下面是其中的几点。1.Python中很重要的一种数据类型就是字典,其声明方式如下: d = {'foo':1, 'bar':2.3, 's':'my first dictionary'} 索引时的使用格式为 print d['foo'],将会输出 1 。原创 2017-09-21 20:16:27 · 1507 阅读 · 0 评论 -
Study of Java-Object类
在Java中,只有基本数据类型不是对象,而所有对象归属的类型都扩展自Object类。因此,对Object类的学习就显得非常重要。本篇文章主要介绍Object类的几个重要方法:equals方法,hashcode方法,以及toString方法。1. Object类的equals方法equals方法的功能是检测两个对象是否相等。需要特别注意的是,Object类对这个方法默认的操作是判断两个对象的引用是否...原创 2018-06-17 14:55:34 · 211 阅读 · 0 评论 -
Java日志小结
在本学期做软件构造的实验过程中,我深入学习了Java的日志功能,在这篇文章中对其进行简单的总结。在编程过程中,我们常常需要观察程序的运行过程或者记录程序的运行信息,可能我们最熟悉的是使用System.out.println语句将信息打印到控制台上。这个方法很常用但缺点也很明显:这些语句需要频繁地进行插入和删除操作。比如发现程序有问题了,插入一些System.out.println语句进行观察;解决...原创 2018-06-17 15:45:23 · 232 阅读 · 0 评论 -
Java 垃圾回收
近期,我学习了Java语言提供的垃圾回收机制,并在实验中针对自己的程序考虑自定义的高效的垃圾回收机制。现对Java GC(尤其是回收算法)进行简单总结。Java内存回收由Java虚拟机完成。1. 垃圾回收的对象Java垃圾回收的对象很明确:没有引用指向的对象。对于这样的对象,JVM的一个系统级线程会自动删除它并释放该内存块,以便程序能够再次使用这块内存。2. 垃圾回收的算法垃圾回收算法的基础是必须...原创 2018-06-17 16:49:13 · 445 阅读 · 0 评论