- 浏览: 46499 次
- 性别:
- 来自: 上海
最新评论
-
zhp8341:
http://www.ccblog.cn/85.htm la ...
Java8之简单流操作
文章列表
最近工作不忙,闲来无事,就看看书,今天遇到了构造代码块让我一顿好奇。构造函数倒是了解一些,构造代码块还是第一次听说,那么到底什么是构造代码块?
其实,构造代码块是代码块的一种类型。代码块 ...
一、背景
利用Java语言编写系统的时候,经常会遇到业务需求的变更而导致修改代码,甚至有些时候还需要修改核心代码(如果整个系统架构设计的不合理的话)。为了避免这种问题,在Java编程的时候,我们应该将易变业务使用脚本语言编写。
Java世界一直在遭受着“异族”的入侵,比如PHP、Ruby、Groovy、JavaScript等,这些入侵者都有一个共同的特征:全是同一类语言——脚本语言,它们都是在运行期间解释执行的。为什么Java这种强编译型的语言会需要这些脚本语言呢?这是因为脚本语言的三大特点:灵活、便捷、简单。
二、脚本语言特征的简述
...
在排序算法中,归并排序比插入排序的效率更高,下面通过Scala语言实现归并排序。
/**
* Created by user on 2016/1/22.
*/
object MergeSort {
def mergeSort[T](less: (T, T) => Boolean)(xs: List[T]): List[T] = {
def merge(xs: List[T], ys: List[T]): List[T] = (xs, ys) match {
case (Nil, _) => ys
ca ...
一、总述
排序,这是一个十分经典且实用的算法。不论,你学习的何种编程语言,排序算法都是作为软件工程师或研发工程师所必须掌握的东西。最近一直在学习Scala,下面就通过Scala语言实现插入排序算法。
二、插入排序算法
定义一个名为InsertSort的object对象
/**
* Created by user on 2016/1/22.
*/
object InsertSort {
def sort(x: List[Int]): List[Int] = {
if(x.isEmpty){
Ni ...
Scala编程之Option
- 博客分类:
- Scala
一、总述
在《Scala编程之样本类与模式匹配》的文章中,鄙人以一个实例介绍了样本类与模式匹配,本篇介绍一个更有趣的东西:Option。
Scala为可选值提供了一个标准类型:Option。这种类型有两个值:Some(x)和None,其中x表示实际值,而None对象代表缺省值。
下面通过编写一个简单的实例实现两种功能:Option类型的两种值;解析Option类型两种值中所对应的实际值。
二、实例展示
定义一个object,其名为OptionClass。
/**
* Created by user on 2016/ ...
Scala编程之样本类与模式匹配
- 博客分类:
- Scala
一、总述
在今天的Scala编程的学习过程中,发现了Scala语言中十分有趣的东西:样本类、模式匹配。对于样本类和模式匹配的概念,鄙人通过一个自己编写的实例给出对应的说明。
二、实例展示
1、定义一个抽象类Expr,并且在该类的内部定义了几个不同的类,如代码中所示:
/**
* Created by user on 2016/1/21.
*/
abstract class Expr
case class Var(name: String) extends Expr
case class Number(number: Double) ...
一、论述
在我们刚接触Java语言的时候,所有的教材或老师都会和你讲这样一点:Java是一门面向对象的编程语言。用2015年比较流行的网络语就是:Java是一门面向对象的编程语言、Java是一门面向对象的编程语言、Java是一门面向对象的编程语言,重要的事说三遍!!!
那Java到底是怎样的一门面向对象的编程语言呢,鄙人给出的结论是Java不是纯面向对象的。也许,已经有前辈提出了和我一样的结论,这没关系。下面通过一个具体的实例进行证明一下我的结论。
二、实例证明
1、定义一个通用的接口:CompareMethod
/**
* Cr ...
一、概述
今天在《Scala In Programming》中学习了关于Scala的组合与继承,下面通过一个实例作为知识的巩固。
二、实例展示
1、实例名称:
根据给定的边界值,画出一个螺旋。
2、实例描述:
a、首先给出四个类:Element、ArrayElement、UniformElement、LineElemnt,其中Element为抽象的超类,其余三个类分别继承于Element。
import scalaDemo.Element._
/**
* Create ...
在阅读了《Scala InProgramming》一文中学习了Scala语言的内建控制结构,为了巩固学习的内容,特意以写了一个小程序:打印标准乘法表,作为这一部分的完结。
1、打印标准乘法表的实现类
class PrintMulTable(start: Int,end: Int) {
val begin = this.start
val finish = this.end
//以序列形式返回一行乘法表
def makeRowSeq(row: Int) = for (col <- begin to finish) yiel ...
在前面一篇关于Scala编程的文章中简单的介绍了Scala语言,关于Scala语言的一些语法及规则,如有感兴趣的朋友可以自己阅读相关书籍,鄙人诚挚推荐《Scala In Programming》,下面利用Scala语言实现简单的分数四则运算。
1、分数的四则运算类
class Rational(n: Int,d: Int) {
//分母不能为0的校验
require(d != 0)
//分数的最简形式
private val simple = gcb(n.abs,d.abs)
val numer = n / simple ...
一、简述
Scala语言的名称来自于“可伸展的语言”。之所以这样命名,是因为他被设计成随着使用者的需求而成长。用Scala语言编写应用程序可以有很大的范围:小到写脚本,大到建立大系统。
Scala是很容易进入的语言,它跑在标准的Java平台上,可以与所有的Java库实现无缝交互。它也是用来编写脚本把Java控件链在一起的很好的语言,但是用它来建立大系统和可重用控件的架构将更能够发挥它的力量。从技术层面上来说, Scala是一种把面向对象和函数式编程理念加入到静态类型语言中的混血儿, Scala的许多不同的方面都展现了面向对象和函数式编程的熔合;或许它比其他那些广 ...
一、Jetty简介
Jetty 是一个开源的servlet容器,它为基于Java的web容器(例如JSP和servlet)提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。
开发人员可以将Jetty容器实例化成一个对象,可 ...
抽象工厂模式
工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。附件中的类图说明了抽象工厂模式各部分之间的关系。示例代码如下:
public class ProductFactory {
public static Product createProduct(){
return new Productor();
...
工厂方法模式
本篇中将设计模式中的工厂方法模式分为两种:
1、简单工厂方法模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。附件中简单工厂模式类图说明了这类设计模式的关系。示例代码如下:
public interface Product {
public void product();
}
public class Productor implements Product {
@Override
public void product() {
System.out.println("I am p ...
一、什么是设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设 ...