运筹学
运筹学里面其实更重要的是建模。换言之,就是看现实问题和数学语言是怎么对应的。
这个因为考试的原因,太容易被忽略了其重要性。建模这事情说难不难说易不易。易在好像就是定义几个变量,定义一下变量之间的关系和目标函数。难在:
1、对现实问题要看透:什么才是问题里面的最重要的因素,抓住重点:
2、找到最合适的数学语言和它对应,
3、模型要尽量容易解
运筹学里面其实更重要的是建模。换言之,就是看现实问题和数学语言是怎么对应的。
这个因为考试的原因,太容易被忽略了其重要性。建模这事情说难不难说易不易。易在好像就是定义几个变量,定义一下变量之间的关系和目标函数。难在:
1、对现实问题要看透:什么才是问题里面的最重要的因素,抓住重点:
2、找到最合适的数学语言和它对应,
3、模型要尽量容易解
网上查阅开发框架资料时,知乎推荐《Struts2技术内幕:深入解析Struts架构设计与实现原理》这本书。本书2013年出版,在亚马逊上只有Kindle电子版,后来在孔夫子旧书网上下单买了一本旧的全新书。
购买本书时也犹豫过,一是,这是本号称技术内幕的书,担心作者会陷入技术的细枝末节;二是,对中国人写关于技术的书,大多在堆砌不同资料的套路中来回,结果都是大杂烩,对本质的东西反而讲不透。
但是当开始看这本书的时候,就真正被吸引了,有一种爱不释手的感觉。
作者的逻辑是,我们编程过程碰到什么问题?解决方案是什么样?具体实现方式以及背后的思想是什么?围绕这三个环节深入浅出的把Struts框架进行讲解,让人读后有一种醍醐灌顶的感觉,让读者真正做到知其然并知其所以然。
总体来说是一本难得的好书。
Struts2框架是表示层的框架,MVC又是表示层最经典的设计模式(最佳实践),所以本书最核心的部分是围绕着MVC模式在展开,讲述了为了满足MVC的实现,在数据流、控制流方面,整个框架是如何设计、各层是如何交互的。
虽然目前Spring
MVC异军突起,已经有开始取代Struts2的局面,但是从框架原理和思想角度来说,其实是相通的。关键点不是具体技术的细节,而是技术后面的方法论,技术背后的思想和思考问题的方法。
《Struts2技术内幕:深入解析Struts架构设计与实现原理》第2章固本清源—Web开发浅谈,本章讨论的话题是非常重要的,因为任何细节都无法脱离基本概念而存在。如果我们要探寻Struts2的细节,就必须了解Struts2作为一个框架存在的基本意义。本节为大家介绍表示层的困惑。
要让Java程序能够运行,就得让Java类被Java虚拟机加载。Java类如果不被Java虚拟机加载就不能正常运行。正常情况下,我们运行的所有的程序在编译期时候就已经把那个类被加载了。
Java的反射机制是在编译时并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用的是在编译期并不知道的类。这样的编译特点就是java反射。
假如有两个程序员,一个程序员在写程序的时需要使用第二个程序员所写的类,但第二个程序员并没完成他所写的类。那么第一个程序员的代码是不能通过编译的。此时,利用Java反射的机制,就可以让第一个程序员在没有得到第二个程序员所写的类的时候,来完成自身代码的编译。
Java的反射机制它知道类的基本结构,这种对Java类结构探知的能力,我们称为Java类的“自审”。如eclipse中,一按点,编译工具就会自动的把该对象能够使用的所有的方法和属性全部都列出来,供用户进行选择。这就是利用了Java反射的原理,是对我们创建对象的探知、自审。
经常看到各类文章中出现jdk1.5或者JAVA5,其实这都是指的同一个东西。
JAVA的版本最开始是1995年的JDK Alpha and
Beta版本,第二年发布JDK1.0版本
之后就是JDK1.1,JDK1.2。到1998年,不再叫JDK了,而是叫J2SE,但是版本号还是继续延续下去。到了2004年,Sun公司又各种不爽了,按理J2SE1.5的版本,改名叫J2SE5.0了。之后又把J2SE改成Java
SE 6.然后一直延续到现在,因此人们常说的Java X=Java SE
X=JDK1.X,都是一回事。
Java SE 8就是Java8,或者jdk1.8。
刚看完瀑布模型过程代表作--《软件是这样炼成的》,书中介绍了一种庞大的、重型的过程方法。为了比较,又看了这本关于敏捷开发的书。
关于敏捷开发,之前陆陆续续有些了解,《敏捷软件开发(原则模式与实践)》的作者作为敏捷开发的创始者之一,在书中系统的说明了敏捷开发的思想以及相关实践。
敏捷开发(Agile
Development),是一种面临迅速变化的需求快速开发软件的能力。为了获取这种敏捷性,我们需要使用一些可以提供必要的纪律和反馈的实践。我们需要使用一些可以保持我们的软件灵活、可维护的设计原则,并且我们需要知道一些已经被证明针对特定的问题可以平衡这些原则的设计模式。
idea重构功能非常强大,特别是在java web方面,甚至能够重构html/css/js,下面我将为读者介绍idea的重构功能
类型系统的一些概念,众说纷纭,使用上也比较乱。有些东西,甚至不好严格定义。以下算学术界的一种相对“严格”的说法。
语言设计时,可以定义一组forbidden behaviors. 它必须包括所有untrapped errors, 但可能包含trapped errors.
模板方法模式是类的行为模式。
准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。