- 博客(52)
- 资源 (5)
- 收藏
- 关注
原创 Java核心技术第3章(7)
3.10 数组 数组是一种数据结构,用来存储同一类型值的集合. 当声明数组变量时,需要指出数组类型(数据元素类型紧跟[])和数组变量的名字.如下所示:int[] a; 这条语句只声明了变量a,并没有将a初始化为一个真正的数组.应该使用 new 运算符创建数组:int[] a = new int[100]; 这条语句创建了一个可以存储100个整数的数组.
2015-09-30 22:05:15 687
原创 Java核心技术第3章(6)
3.9 大数值 如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包的两个类:BigInteger和BigDecimal.这两个类可以处理包含任意长度数字序列的数值.BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算. 使用静态的valueOf方法可以将普通的数值转换为大数值:BigInteger a =
2015-09-29 13:00:14 360
转载 SourceInsight 日文乱码 问题解决方案
1. 对文件右键《Document Options》2. 点击 3. 字体选择《MS Gothic》, and 脚本选择《日语》4. 对文件右键选择《Style Properties》5. Font Name 选择《MS UI Gothic》
2015-09-28 16:15:09 4818
原创 Java核心技术第3章(5)
3.8 控制流程 注释:Java的控制流程结构与C/C++的控制流程结构一样,只有很少的例外情况.没有goto语句,但 break 语句可以带标签,可以利用它实现从内存循环跳出的目的(这种情况下C语言采用goto语句实现).另外还有一种变形的 for 循环,在C/C++中没有,它有点类似C#中的 for each循环.3.8.1 块作用域 块(即复合语句)是指由一对花括
2015-09-28 10:22:16 519
原创 Java核心技术第3章(4)
3.7 输入输出 打印输出到"标准输出流"(即控制台窗口),只需调用System.out.println即可.然而,读取"标准输入流"System.in就没有那么简单了.要想通过控制台进行输入,首先需要构造一个Scanner对象,并与"标准输入流"System.in关联.Scanner in = new Scanner(System.in); 现在,就可以使用Scanner类的
2015-09-27 11:10:03 462
原创 Java核心技术第3章(3)
3.6 字符串从概念上将,Java字符串就是Unicode字符序列.Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,叫做String.每个用双引号括起来的字符串都是String类的一个实例:String e = ""; // an empty stringString greeting = "hello"; 3.6.1 子串String类的su
2015-09-26 09:08:37 1064
原创 Java核心技术第3章(2)
3.5 运算符3.5.1 自增运算符与自减运算符 在Java中,借鉴了C/C++的实现方式,也使用了自增,自减运算符:n++将变量n的当前值加1;n--将n的值减1.3.5.2 关系运算符与 boolean 运算符 Java沿用了C++的习惯,用&&表示逻辑"与",用||表示逻辑"或".&&和||是按照"短路"方式求值的.如果第一个操作数已经能够确定表达式的值,
2015-09-25 20:12:41 817
原创 Java核心技术第3章(1)
第3章 Java的基本程序设计结构 本章主要讲述程序设计相关的基本概念(如数据类型,分支以及循环)在Java中的实现方式. 对于一个具有C++编程经验的程序员来说,本章的内容只需要浏览一下,应该重点阅读分布在正文中的C/C++注释.3.1 一个简单的Java应用程序 下面卡一个最简单的Java应用程序,它只发送一条消息到控制台窗口中:public cl
2015-09-25 17:44:55 734
原创 Java核心技术第2章
第2章 Java程序设计环境2.1 安装Java开发工具箱2.1.1 下载JDK Java术语 术语 缩写 解释Java Development Kit JDK 编写Java程序的软件Java Runtime Enviroment JRE 运行Java程序的软件Stan
2015-09-25 13:56:46 1241
原创 java学习开始
今天开始学习java,使用horstmann的,源码在官网下载http://horstmann.com/corejava.html.加油!
2015-09-25 11:22:18 411
原创 Effective C++总结(二)
Effective C++总结第4章 设计与声明条款18: 让接口容易被正确使用,不易被误用 详见这里."促进正确使用"的办法包括接口的一致性,以及与内置类型的行为兼容.条款19: 设计 class 犹如设计type 详见这里.class 的设计就是type的设计.在定义一个新的type之前,请确定已经考虑本条款覆盖的所有讨论主题.条款20: 宁以pass-
2015-09-24 14:57:20 334
原创 Effective C++总结(一)
Effective C++总结导读 详见这里.声明式(declaration)是告诉编译器某个东西的名称和类型,但忽略细节.定义式是编译器为此对象所分配内存的地点.第1章 让自己习惯C++条款01: 视C++为一个语言联邦 详见这里.最简单的方法是将C++视为一个由相关语言组成的联邦而非单一语言.C++主要有以下四个次语言:C,Object-Oriented C
2015-09-24 14:54:15 424
原创 Effective C++——条款54,条款55(第9章)
条款54: 让自己熟悉包括TR1在内的标准程序库Familiarize yourself with the standard library, including TR1. c++ Standard(定义C++语言及其标准程序库的规范)早在1998年就被标准委员会核准了.TR1代表"Technical Report 1".在概括论述TR1有些什么之前,先回顾C++98列入的C++
2015-09-24 11:31:47 396
原创 Effective C++——条款52(第8章)
条款52: 写了placement new 也要写placement deleteWrite placement delete if you write placement new placement new 和 placement delete 并非在C++常见.回忆条款16和条款17,当写一个如下所示的 new 表达式:Widget* pw = new Widget;
2015-09-22 16:28:53 464
原创 Effective C++——条款51(第8章)
条款51: 编写 new 和 delete 时需固守常规Adhere to convention when writing new and delete. 条款50已解释什么时候会想要写个自定义的 operator new 和 operator delete,但并没有解释当那么做时必须遵守什么规则. 实现一致性 opertor new 必须得返回正确的值,内存不足时
2015-09-22 13:38:34 503
原创 Effective C++——条款50(第8章)
条款50: 了解 new 和 delete 的合理替换时机Understand when it makes sence to replace new and delete. 首先怎么会有人想要替换编译器提供的 operator new 和 operator delete 呢?下面是三个最常见的理由: 1.用来检测运用上的错误. 如果自行定义一个 operat
2015-09-21 17:32:58 553
原创 Effective C++——条款49(第8章)
第8章 定制 new 和 deleteCustomizing new and delete 当计算机环境(例如Java和.NET)夸耀自己内置"垃圾回收能力"的当今,C++对内存管理的纯手工法也许看起来有点老气.但是许多苛刻的系统程序开发人员之所以选择C++,就是因为它允许他们手工管理内存.这样的开发人员研究并学习他们的软件使用内存的行为特征,然后修改分配和归还工作,以求获得
2015-09-21 17:27:54 387
原创 Effective C++——条款48(第7章)
条款48: 认识 template 元编程Be aware of template metaprogramming . Template metaprogramming(TMP,模板元编程)是编写 template-based C++程序并执行于编译期的过程.所谓 template metaprogram(模板元程序)是以C++写成,执行于C++编译器内的程序.一旦TMP程序结束
2015-09-21 14:18:48 456
原创 Effective C++——条款45(第7章)
条款45: 运用成员函数模板接受所有兼容类型Use member function templates to accept "all compatible types" 所谓智能指针是"行为像指针"的对象,并提供指针没有的机能.例如条款13曾提及std::auto_ptr和tr1::shared_ptr如何能够被用来在正确时机自动删除heap-based资源.STL容器的迭代器几
2015-09-18 16:19:49 352
原创 Effective C++——条款44(第7章)
条款44: 将与参数无关的代码抽离templatesFactor parameter-independent code out of templates. Templats是节省时间和避免代码重复的一个很好的办法.不再需要键入20个类似的 class 而每一个都带有15个成员函数,只需键入一个 class template,留给编译器去具现化那20个需要的相关的 class
2015-09-17 16:48:33 540
原创 Effective C++——条款43(第7章)
条款43: 学习处理模板化基类内的名称Knoew how to access names in templatized base classes 假设需要撰写一个程序,它能够传送信息到若干不同的公司去.信息或是译成密码,或是未加工的文字.如果编译期间就有足够信息来决定哪一个信息传递到哪一家公司,就可以采用基于 template 的解法:class CompanyA {pub
2015-09-16 21:04:28 716
原创 Effective C++——条款41,条款42(第7章)
第7章 模板与泛型编程Templates and Generic Programming C++ template 的最初发展动机很直接:使人们得以建立"类型安全"(type-safe)的容器如vector,list和map.容器当然好,但泛型编程(generic programming)写出的代码和其所处理的对象类型彼此独立,这点相当好.STL算法如for_each,fi
2015-09-16 15:50:26 540
原创 Effective C++——条款40(第6章)
条款40: 明智而审慎地使用多重继承Use multiple inheritance judiciously 一旦涉及多重继承(multiple inheritance:MI),C++社群便分为两个基本阵营.其中之一认为如果单一继承(single inheritance,SI)是好的,多重继承一定更好.另一派阵营则主张,单一继承是好的,但多重继承不值得拥有(或使用).本条款
2015-09-16 09:27:48 413
原创 Effective C++——条款39(第6章)
条款39: 明智而审慎地使用 private 继承Use private inheritance judiciously 条款32曾经论证过C++如何将 public 继承视为is-a关系.现在看看 private 继承代替 public 继承的例子:class Person { ... };class Student : private Person { ... }
2015-09-15 17:26:00 376
原创 Effective C++——条款38(第6章)
条款38: 通过复合模塑出has-a或"根据某物实现出"Model "has-a" or "is-implemented-in-terms-of" through composition 复合(composition)是类型之间的一种关系,当某种类型的对象内含它种类型的对象,便是这种关系.例如:class Address { ... };class PhoneNumb
2015-09-15 14:47:22 1949
原创 Effective C++——条款37(第6章)
条款37: 绝不重新定义继承而来的缺省参数值Never redefine a function's inherited default parameter value 先将讨论简化,只能继承两种函数:virtual 和non-virtual 函数.然而重新定义一个继承而来的non-virtual 函数永远是错误的(详见条款36),所以可以安全地将本条款的讨论局限于"继承一个带有缺
2015-09-15 11:44:17 392
原创 VS2010搜索对话框函数的方法
VS2010搜索对话框函数的方法1.首先在VS2010的对话框上点击View,选择Resource View.如下图所示 2.然后在对应工程下,选择对应的类;在对应的类下,选择对应的Dialog,然后单击对应的Dialog. 3.右击相应的对话框,选择Properties. 4.在Properties中找到对话框相应的ID. 5.在整个项目中find对应的ID.
2015-09-14 17:14:51 2977
原创 Effective C++——条款36(第6章)
条款36: 绝不重新定义继承而来的non-virtual 函数Never redefine an inherited non-virtual function 假设 class D系由 class B以 public 形式派生出来,class B定义有一个 public 成员函数mf.由于mf的参数和返回值都不重要,所以假设两者皆为 void .class B {publi
2015-09-13 20:29:50 403
原创 Effective C++——条款35(第6章)
条款35: 考虑 virtual 函数以外的其他选择Consider alternatives to virtual functions 假如在设计一个游戏类的继承体系时,提供一个成员函数healthValue,返回一个整数,表示人物的健康程度.由于不同的人物可能以不同的方式计算健康程度,将healthValue声明为 virtual 似乎是再明白不过的做法:class Ga
2015-09-13 17:05:42 426
原创 Effective C++——条款34(第6章)
条款34: 区分接口继承和实现继承Differentiate between inheritance of interface and inheritance of implementation 表面上直截了当的 public 继承概念,经过更严密的检查之后,发现它由两部分组成:函数接口(function interface)继承和函数实现(function implem
2015-09-13 11:49:52 458
原创 Effective C++——条款33(第6章)
条款33: 避免遮掩继承而来的名称Avoid hiding inherited names 这个题材和作用域(scopes)有关,在诸如下面的代码:int x; // global变量void someFunc() { double x; // local变量 std::cin >> x; /
2015-09-12 21:11:58 423
原创 W3School——XSL学习笔记
这段时间用到HTML,XSL,XML,先把XSL语言大概看了一下,W3School是一个很好的网站,非常值得收藏。XSL 指扩展样式表语言(EXtensible Stylesheet Language)。发展 XSL 的原因是:存在着对于基于 XML 的样式表语言的需求。XSL 包括三部分:XSLT:用于转换 XML 文档的语言。XPath:用于在 XML 文档中导航的语言。
2015-09-11 12:12:52 807
原创 Effective C++——条款30(第5章)
条款30: 透彻了解 inlining 的里里外外Understand the ins and outs of inlining inline 函数看起来像函数,动作像函数,比宏好得多(详见条款2),可以调用它们又不需要承受函数调用所导致的额外开销. 实际获得的比想到的还多,因为"免除函数调用成本"只是故事的一部分而已.编译器最优化机制通常被设计用来浓缩那些"不含
2015-09-08 20:09:40 493
原创 Effective C++——条款29(第5章)
条款29: "为异常安全"而努力是值得的Strive for exception-safe code 假设有个 class 希望用于多线程环境,所以它有个互斥器(mutex)作为并发控制(concurrency control):class PrettyMenu {public: ... void changeBackground(std::istre
2015-09-07 12:03:29 513
原创 Effective C++——条款28(第5章)
条款28: 避免返回handles指向对象内部成分Avoid returning "handles" to object internals 假设程序涉及矩形,每个矩形由其左上角和右下角表示.为了让Rectangle对象尽可能小,可能会决定不把定义矩形的这些点放在Rectangle对象内,而是放在一个辅助的 struct 内再让Rectangle去指它:class Po
2015-09-07 10:09:33 528
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人