- 博客(33)
- 收藏
- 关注
原创 Java 类构造器调用和成员初始化顺序
调用基类构造器。首先构造继承关系最上层类的构造器,然后是下一层导出类的构造器,以此类推,直至最底层的导出类。按声明顺序调用成员的初始化方法。调用导出类构造器的主体。democlass A { public A() { System.out.println("A()"); }}class B { public B() { ...
2018-06-06 20:29:41 473
原创 Java static方法不能直接调用非static方法和属性
一个方法用static修饰,便是静态方法或类方法。静态方法不属于特定对象。由于static方法在装载class时首先完成,比构造方法早,此时非static属性和方法还没有完成初始化。所以,在static方法内部无法直接调用非static方法(可以通过先实例化对象,再用该对象调用非static方法),但非static方法中可以调用static方法,通过类.方法名()的方式。
2018-01-03 21:05:02 12697 1
原创 Java 变量的初始化问题
如果某个类的数据成员的类型是基本数据类型,即使没有进行初始化,java也会赋值一个默认值,防止程序产生错误。如下表所示: 基本类型 默认值 boolean false char ‘\u0000’(值为0,显示为空白) byte (byte)0 short (short)0 int 0 long 0L
2017-12-18 17:43:32 503
原创 Java 不允许在一个范围大的作用域下重新定义同名变量
Java中不允许在一个范围大的作用域下重新定义同名变量。java设计者认为这样做会导致程序混乱。
2017-12-18 17:22:32 1817
转载 不用加减乘除做加法
三步走:第一步:相加各位的值,不算进位,得到2。 第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。 第三步:重复上述两步,只是相加的值变成上述两步的得到的结果2和10,得到12。
2016-08-09 10:23:54 309
原创 为什么C++类定义中,数据成员不能被指定为自身类型,但可以是指向自身类型的指针或引用?
从对象构造的角度理解“数据成员不能被指定为自身类型,但可以是指向自身类型的指针或引用”
2016-07-26 21:57:04 6263 2
原创 使用双重指针实现链表结点的插入与删除
单链表结点的插入和删除是数据结构中很基本的操作。如果单链表带有头结点,那么可以把头结点指针传递给插入和删除函数;可如果对无头结点的单链表进行上述操作,仅传递头指针(指向第一个结点的指针),在插入或删除操作改变链表头指针时,将会有些问题。
2016-07-22 14:54:02 4049
原创 关于C/C++中const关键字的思考
const关键字不仅可以用来定义常量,还可以修饰函数的形参、返回值,以及成员函数的this指针。适当的使用const,可以有效避免由于程序员的疏忽造成的变量的改动,很好地提高程序的健壮性。
2016-07-21 11:12:38 684
原创 【牛客网】copy-list-with-random-pointer题解
linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list.
2016-07-14 15:54:37 379
原创 【牛客网】max-points-on-a-line题解
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
2016-07-14 15:31:37 362
原创 链接属性与存储类型
1. 链接属性 各个源文件被编译后,所有的目标文件+从函数库中引用的函数(一般是归档库文件,*.a类型)经过链接器链接,形成一定格式的可执行程序,如elf格式。如果相同的标示符出现在几个不同个源文件中,他们是否表示同一个实体。这由标示符的链接属(linkage)决定。链接属性有三种:外部(external),内部(internal),无(none)外部属性的标示符在整个程序内,不论出现于哪个
2016-02-23 11:55:10 721
转载 C++四种强制类型转换运算符的联系与区别
C++有四种强制类型转换符,分别是dynamic_cast,const_cast,static_cast,reinterpret_cast。 下面是两篇对这四种强制类型转换符讲解比较清晰的博客,链接如下: Rock’s IT Blog 梦醒潇湘love
2016-01-27 15:20:32 484
转载 C++中临时对象及编译器对返回值优化的手段
C++中临时对象及编译器对返回值优化的手段 http://www.cnblogs.com/xkfz007/articles/2506022.html
2016-01-27 15:03:10 516
转载 C++中使用cin输入时的出错处理
使用cin作为程序的输入时,很容易因为类型不匹配等原因导致输入失败,所以,在编写C++程序时一定要对此处特别留心。如何正确处理cin的状态标识符以及适当清空输入缓存区的内容,是一个很重要的知识点
2016-01-20 17:24:36 10466 2
原创 C++中#define、typedef和const的区别
C++中#define、typedef和const的区别与联系,使用的时候该注意些什么?
2016-01-19 17:09:07 548
转载 本地代码与托管代码
最近在了解托管代码(managed code)和本地代码(native code)的知识,看到两篇文章,觉得不错,于是转载过来。以下是原文:——————————————————————————————————————————————————————————————————最开始写代码,都是经过编译后生成汇编码,直接在cpu上执行。 因为不同的硬件架构和操作系统,会导致不同的cpu支
2015-12-15 17:29:09 3001
转载 Debug模式和Release模式
一、Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/
2015-12-15 12:06:47 669
转载 .net平台和java虚拟机中托管代码的优点和区别
Microsoft中间语言与Java字节代码共享一种理念:它们都是一种低级语言,语法很简单(使用数字代码,而不是文本代码),可以非常快速地转换为内部机器码。对于代码来说,这种精心设计的通用语法,有很大的优点。1. 平台无关性 首先,这意味着包含字节代码指令的同一个文件可以放在任一个平台中,运行时编译过程的最后阶段可以很容易完成,这样代码就可以运行在该特定的平台上。也就是说编译为
2015-12-15 11:55:10 557
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人