语言之道
文章平均质量分 85
果冻虾仁
这个作者很懒,什么都没留下…
展开
-
java读书笔记——this
阅读书籍:《Fundamentals of JAVA Programming》(Fifth Edition)Page 149:LEARNING ABOUT THE this REFERENCEC++和Java之中都是有指针的,但是有个显著的区别就是C++中的this是指针,而Java中是引用。Java中的this指的是它所属的对象本身。在类内部通常忽略使用this,比如:原创 2013-09-07 22:14:49 · 1292 阅读 · 0 评论 -
从Qt谈到C++(一):关键字explicit与隐式类型转换
在生成了一个新的类MainWindow的时候。我们可以看到在它的构造函数里,前面有一个关键字 explicit 。大家可能用到的不多。相信大家都对没有这个关键字的构造函数不陌生。那么这个 explicit 是起到什么作用的呢?explicit是C++中的关键字,不是C语言中的。英文直译是“明确的”、“显式的”意思。出现这个关键字的原因,是在C++中有这样规定的基础上:当定义了只有一个参数的构造函数时,同时也定义了一种隐式的类型转换。先看类型转换。原创 2014-04-26 22:59:35 · 8172 阅读 · 2 评论 -
玩转Bash脚本:选择结构之if
几乎所有的编程语言中都有流程控制的概念,即顺序结构、选择结构和循环结构。选择结构也称分支结构,比如C类语言中的 if 和 switch语句。if的条件前面我已经讲过了test表达式及其简化版 [ ] 运算符的使用,这些判断的语句即可作为if结构的条件。Bash shell中我们可以使用的任何能够有真假判断功能的命令(无论是内部命令,还是外部命令)都可以作为判断的条件。原创 2014-09-17 09:42:54 · 4125 阅读 · 0 评论 -
Java拾遗
问题一:子类何时调用父类的构造方法问题二:静态成员可以被this引用吗问题三:静态成员会被默认初始化吗问题四:接口中的方法能动态绑定吗原创 2014-11-03 17:46:16 · 1657 阅读 · 2 评论 -
GitHub上README写法暨GFM语法解读
自从开始玩GitHub以来,就越来越感觉它有爱。最近对它的README.md文件颇为感兴趣。便写下这贴README文件后缀名为md。md是markdown的缩写,markdown是一种编辑博客的语言。用惯了可视化的博客编辑器(比如CSDN博客,囧),这种编程式的博客编辑方案着实让人眼前一亮。不过GitHub支持的语法在标准markdown语法的基础上做了修改,称为Github Flavored Markdown,简称GFM。可不是GFW呀偷笑。原创 2014-04-15 21:16:54 · 45740 阅读 · 18 评论 -
编写C语言跨平台函数(以清屏和休眠函数为例)
支持C语言的平台有许多,常见的编译器如VC、gcc、Clang等。不同的编译器共同点是都支持标准C(ANSI C),但是各自却又有自己独立的、平台相关的功能以及函数接口。这通常为程序的移植性带来很多问题。比如清屏函数,Windows里面我们调用System("cls");而Linux下这段代码不能使用。还有休眠,Linux下有sleep函数,它的粒度是秒,usleep函数它的粒度是微妙。Windows下休眠函数Sleep,它的粒度是毫秒。原创 2015-01-08 18:44:11 · 6671 阅读 · 0 评论 -
玩转Bash脚本:循环结构之for循环
暌违多日。为大家奉上《玩转Bash脚本》系列的第7篇,这次我来介绍一下Shell脚本中循环结构里面的for循环。shell脚本除了自身风格的for循环外,还支持C语言风格的for循环哦原创 2014-12-13 19:56:09 · 59845 阅读 · 0 评论 -
玩转Bash脚本:特殊变量
在前面博文中我讲过了变量基础部分《变量基本概念及其初始化》。我们知道假如我们有初始化一个变量a=hello,那么如果我们想打印它的值,我们需要使用echo $a。但是除此之外还有很多特殊的变量,可供 $ 使用。本文讲到了$0 # * @ _ ? ! -这几个特殊变量的含义。脚本的参数正如同C语言中有main(int argc,char **argv),Java中有main(String[]args)一样,Bash同样能对执行脚本时附加的参数做操作。原创 2014-09-25 20:56:07 · 3976 阅读 · 0 评论 -
玩转Bash脚本:选择结构之case
之前讲过if结构,本文讲到了bash脚本选择结构中的case语句,本以为case内容不多。然而在写作过程中才发现,可以写的内容这么多。包括一些不常见的用法,比如用 ;& 或 ;;&来代替;; 结束一个条件。还有条件中(也就是右括号里面)支持的正则表达式,*、?、[ ]、()。还有POSIX的字符类。原创 2014-10-05 12:32:34 · 21078 阅读 · 0 评论 -
玩转Bash脚本:数值计算
Bash中的数学运算并不如其他语言般简便,因为Bash把所有变量都视作字符串,所以a=1+2,a并不等于3,而是等于字符串1+2。为了解决这一问题,有如下几种方案。$[ ],$(()) ,expr,bc,let原创 2014-10-22 11:36:55 · 28768 阅读 · 2 评论 -
玩转Bash脚本:循环结构之while循环
和其他语言一样Bash的循环结构中也有while语句。它的基本结构为 while 条件;do 循环体;done 和其他语言不同的是,bash脚本中的while条件很丰富,可以是方括号[]就像if那样的条件,也可以是终端的命令作为条件。bash的死循环结构十分简洁不用while(1)不用while(true),只要while :。此外bash的while还能和重定向符号>和<联用。怎么样,有趣吧。原创 2015-01-31 16:27:56 · 122130 阅读 · 2 评论 -
由C++书单说开来
心血来潮,整理了一下学习C++应该读的书单,当然我并没有都读过, 权当作一个ToDo List吧。书单 本书单暂不包含C语言相关书目,当然了想学好C++,C语言的经典图书也应该读一读。 书名 作者 备注 The C++ Programing Language Bjarne Stroustrup C++之父的TCPL C++ Primer Plus Stephen原创 2018-07-28 01:37:11 · 1061 阅读 · 0 评论 -
玩转Bash脚本:test测试语句
之前写的这篇博文,最近发现讹误太多,又被多家网站(比如推酷,51CTO)转载过了。为避免误人子弟,贻害苍生。今特此更正:关于真值的讨论,尤其关于test测试字符串时的一些错误。还有莫名其妙的 -n 选项。 并且更改了排版。test就是测试的意思,常用在流程控制语句中作为条件。本文涉及test用于整数,字符串,文件比较时的一些选项。还有test的简化版 [ ]的一些介绍。原创 2014-08-05 10:26:06 · 7078 阅读 · 0 评论 -
拾遗与填坑《深度探索C++对象模型》3.2节
3章2节 Data Member的布局背景介绍访问区(access section)即是指private、public、protected下面的代码区域。当然在类中同一种访问区可以多次声明,视作多个访问区,如:原创 2016-04-13 19:20:55 · 2867 阅读 · 0 评论 -
拾遗与填坑《深度探索C++对象模型》3.3节
3章3节 Data Member的存取背景介绍本节篇幅较短核心内容讲的就是,如下代码的存取效率问题:原创 2016-04-14 11:40:59 · 3424 阅读 · 0 评论 -
决胜C++面试:堆、栈面面观
学习C语言,我们都听过堆(heap)和栈(stack)的概念。需要注意的是:有些地方“堆栈”这个词特指的是栈,而不是堆和栈。命名约定:本文中堆栈一次出现的地方,指的是两种东西,而非一种。 在数据结构中,我们也听过栈和堆这两种数据结构,当然和我本文要讲的东西是不同的概念。不过数据结构中的栈(算法、数学意义上的一种抽象),和本文中的栈(实际存在的存储区)有一共同之处就是FILO ——原创 2015-10-11 23:00:04 · 2934 阅读 · 0 评论 -
14行脚本配置Linux下Java环境变量
对于Java初学者而言,可能在Java开发环境的配置上要花一番功夫,而在Linux下,配置Java的环境变量,这个功夫可能又会增加。为此,我编了一个bash脚本来实现自动配置Java的环境变量。你只需要将如下脚本和你下载的jdk压缩包放到一个文件夹下,执行该脚本,并依据提示输入一些信息即可。并且为了更加方便大家,我把这个脚本放到了github上。大家可以执行 博文最后提到的那一条命令来自动下载这个配置文件,并且自动配置。原创 2014-07-01 21:55:01 · 3444 阅读 · 0 评论 -
从Qt谈到C++(二):继承时的含参基类与初始化列表
提出疑问当我们新建一个Qt的图形工程时,你有没有对如下代码感到好奇?MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) 派生类继承的基类不同以往,竟然是带有参数的,那么这个怎么理解呢?原创 2014-05-02 20:55:46 · 4576 阅读 · 3 评论 -
hdu3336解读KMP算法的next数组
贴代码不是目的,讲解算法才是关键!!。解题的思路是使用了 KMP 算法,然而把并不是完整的KMP算法。只用到了它的next数组的求法。然而这正是KMP算法本身的关键所在。这里关键在于讲解next数组的思想。在漫天飞的网络资料中,next数组的表示方法大致有两种:原创 2014-05-14 09:34:44 · 2978 阅读 · 0 评论 -
Windows下cmd命令【陆续更新】
注意windows下的文件路径是用“\”分割的,反斜杠。这与Linux,网址甚至java中的文件路径描述方法都不同。后者都为 “/”,即除号。【文件操作】1.进入子文件夹 cd 2.返回上一级文件夹 cd ..3.返回本路径的根目录 cd \ 或 cd / (这个有点奇怪吧)4.删除文件 del 如 del *.bak5.重命名 rename *.txt *.java原创 2013-11-03 16:28:42 · 1706 阅读 · 0 评论 -
Java编程优化之旅(二) String类型知多少
String 类大概是Java编程中用到最多的类。一段文本,一个URL,一个Email,甚至一串电话号码都是字符串。然而正是由于如此常用,所以关于String类中的一些低效率的使用方法更应该引起大家的重视。String类型博大精深,优化的方式有很多,本文也只是惊鸿一瞥。简单介绍几个小Tip,比如判断空串、如何连接字符串还有关于charAt()方法的小讨论,另外讲了一个关于测试代码性能的小技巧的题外话,这是我从国外老程序员那里取的经。原创 2014-04-05 20:03:53 · 3629 阅读 · 0 评论 -
Java编程优化之旅(一)一般化方法
”过早的优化是一切问题的根源“这句话出自《计算机编程艺术卷》的作者高纳德教授。在你编程的时候尽量不要在一开始就为了优化它而用尽奇技淫巧。这样往往得不偿失。本文标题为“一般化方法”,也就是说比较简单的,并且并不只针对于Java的一些优化方式,C/C++同样适用。当然C/C++本身效率就很高了,不必过分优化。这篇文章的主要目的是抛砖引玉,以后我会写接着写下去,关于Java优化的技巧。大家共同进步吧!原创 2014-03-29 19:41:17 · 1785 阅读 · 0 评论 -
hdu1039 java正则表达式解法
java 正则表达式解hdu1039当然这道题目用c++,解起来也不是很困难的,这次用java主要是练习正则表达式。原创 2014-01-21 14:52:08 · 2181 阅读 · 0 评论 -
hdu1106 java字符串分割
排序Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30220 Accepted Submission(s): 8391Problem Description输入一行数字,如果我们把这行数字中的‘5’都原创 2014-01-20 15:28:46 · 1774 阅读 · 0 评论 -
简化代码,C/C++函数指针数组实现菜单系统
我们经常会遇到使用C/C++语言编写一个菜单系统的情况。在控制台窗口打印一个有好多选项的菜单,然后提示你通过输入对应的编号来完成相应的操作。本文是关于函数指针及函数指针数组的讨论,用于简化代码,省去不必要的重复的代码。原创 2014-04-06 20:14:25 · 4342 阅读 · 0 评论 -
用STL给C++充电:Part 1
Power up C++ with the Standard Template Library: Part I作者:DmitryKorolevTopCoder成员原文地址:http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=standardTemplateLibrary可能你已经使用C++作为你解决Top翻译 2013-06-09 23:00:34 · 2754 阅读 · 0 评论 -
Java实现批量下载《神秘的程序员》漫画
《神秘的程序员们》系列漫画感觉很喜欢,很搞笑。这些漫画经常出现在CSDN“程序员”杂志末页的,以前也看过一些。后来就想下载下来,但是一张一张的点击右键“另存为”,还有很多时候要点击“下一页,”确实让人淡疼。就想着写个程序搞定,查阅了资料后,终于搞定。。。大体的下载过程就是从网页url不断获取html源码的字符串,遇到图片地址,就下载,遇到下一页的地址,就修改原来的url为下一页的url,然后重复上一过程。原创 2013-11-14 14:41:02 · 8292 阅读 · 8 评论 -
C/C++输出空字符串,UB UB UB UB UB UB…
看网上很多讲一些C/C++的问题回答或者文章,经常会遇到UB、UB、UB、UB……UB就是undefined behavior。也就是语言的官方标准未定义的地方,在不同系统,编译器上行为可能不一致。没错,我们当然不能把UB的效果,当成语言标准。但我们也不能因为某些语法是UB就拒绝学习和探究,毕竟我们学习编程语言都不是抱着《XX语言官方标准》的手册来学的。另外呢,我们工作之中通常也是在特定的系统...原创 2019-08-03 18:21:26 · 2957 阅读 · 0 评论