名字和作用域 为什么要取名 看着代码中遍地都是的变量,函数,或多或少的我们都应该想过,为什么会有这些名字呢? 我们知道,计算机将数据存储到对应的物理内存中去.我们的操作就是基于数据的.我们需要使用这些数据,所以一个问题就是如何寻找到这些数据.一个较为直接的方式就是为它起个名字. 联系现实生活中的,最典型的就是图书馆.一本本书,一块块数据.为了查找,我们使用的是对各个数据地址进行编码.一一映射到一组唯一的数据上,以此便于查找的唯一替代彼不便于查找的唯一. 仔细想来,这种替代的方法似乎和哈希函数的思…
title: 代码之髓读后感2.md date: 2017-07-08 17:33:11 categories: tags: Perl的设计者:Larry Wall在<Programming Perl>中提出,优秀的程序员有三大美德:懒惰,急躁和傲慢. 懒惰是因为为减少总的能量支出而不遗余力的努力. 急躁是因为无法忍受程序执行的低效. 傲慢是因为容不下错误. 语言的诞生 程序设计语言的出现就是为了解决各种各样的问题,而这些问题以现在的语言是无法更合适的处理. 于是乎,语言之于语言,就是目标问题…
面向对象 语言中的用语并不是共通的,在不同语言中,同一个用语的含义可能会有很大差别. C++的设计者本贾尼·斯特劳斯特卢普对类和继承给予了正面肯定,然而,"面向对象"这个词的发明者艾伦·凯(Alan kay,他同时也是 Smalltalk 语言的设计者)却持有不同的意见,他对类和继承持否定立场. 对于面向对象的理解 我们是怎样理解世界的呢?我们将生活中遇见的事物总结为特定的"物"的概念,它们就是诸如桌子.椅子.银行贷款.公式.人.多项式.三角形.晶体管之类的东西.我…
容器 单个地址存放单个数据,但是如果有多个数据,而这些数据互相关联,则我们更希望的是将他们能够更好的在内存中组织在一起.于是便出现了容器的概念. 在不同的语言中,容器的名称不同,性质各异.比如,C 语言中的数组.LISP 语言中的列表.Python 语言中的元组以及 Ruby 语言中的数组.即使是名字相同,在不同语言中表达的意思也可能不一样.比如,LISP 语言和 Haskell 语言中的列表,与 Java 语言和 Python 语言中的列表在内部构造上完全不同. 又由于所针对的问题不同(还是这…
继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法.(3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承.(4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承. 分析以上程序示例,主要疑惑点是“子类继承父类的成员变量,父类对象是否会实例化?私有成员变量是否会被继承?被继承的成员变量…
Bean的作用域类型 singleton :在Spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在; prototype :每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行new XxxBean()的操作; request: 每次HTTP请求都会创建一个新的Bean.该作用域仅适用于WebApplicationContext环境. session: 同一个HTTP Session共享一个Bean,不同于HTTP Session使用…
C#代码告诉你这是什么类型. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 值类型引用类型 { class Program { static void Main(string[] args) { Func<object, string> fnGetType = delegate (objec…
一个对象拥有其语义价值的区域<其作用域 当一个变量将不再被使用,那它应该被理想的回收机制回收.但现实是我们仅当一个变量离开了其作用域,或变成不可访问,才考虑回收. 然而,作用域规则有其优点:1.可以一次性考虑一组语义上存在关系的变量,并能对其进行成批回收. 相对于显式的作用于规则,隐式的自动垃圾回收将尝试提前回收作用域周期较长的变量. 但另一方面,我们需要更灵活的引用环境规则,来获得更丰富的语义表述. 语言设计的目标:高级特征--高抽象级别 机器无关性:不依赖于特定指令集 名字:有效标识符(词法…
Arrays工具类有一个方法asList可以把一个变长参数或数组变成列表,但是它有一个缺点:它所生成的List长度是不可改变的,而这在我们的项目开发中很不方便. import java.util.Arrays; import java.util.List; public class Client { public static void main(String[] args) { String[] strArray = {"1","18","71"…
一.分析  在Java运算中的类型转换,是先运算在进行类型转换的.具体场景如下. 二.场景  在如下程序中: public class Client{ public static final int LIGHT_SPEED = 30 * 10000 * 1000; public static void main(String[] args){ System.out.println("月亮照射到地球需要1秒,计算月亮到地球的距离."); long dis1 = LIGHT_SPEED *…