Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Java迭代模式(Iterator模式)

Java迭代模式(Iterator模式)

上了这么多年学,我发现一个问题,好象老师都很喜欢点名,甚至点名都成了某些老师的嗜好,一日不点名,就饭吃不香,觉睡不好似的,我就觉得很奇怪,你的课要是讲的好,同学又怎么会不来听课呢,殊不知:“误人子弟,乃是犯罪!”啊。好了,那么我们现在来看老师这个点名过程是如何实现吧:1、老规矩,我们先定义老师(Teacher)接口类:public interface Teacher {public Iterator createIterator()...
Linux Bash脚本编程语言中的美学与哲学

Linux Bash脚本编程语言中的美学与哲学

我承认,我再一次地当了标题党。但是不可否认,这一定是一篇精华随笔。在这一篇中,我将探讨Bash脚本语言中的美学与哲学。 这不是一篇Bash脚本编程的教程,但是却能让人更加深入地了解Bash脚本编程,更加快速地学习Bash脚本编程。 阅读这篇随笔,不需要你有Bash编程的经验,但一定要和我一样热衷于探索各种编程语言的本质,感悟它们的魅力。 其实早就想写关于Bash的东西了。 我们平时喜欢对编程语言进行分类,比如面向过程的编程语言、面向对象的编程语言、函数式...
Java8读文件仅需一行代码

Java8读文件仅需一行代码

JDK7中引入了新的文件操作类java.nio.file.File,它包含了很多有用的方法来操作文件,比如检查文件是否为隐藏文件,或者是检查文件是否为只读文件。开发者还可以使用Files.readAllBytes(Path)方法把整个文件读入内存,此方法返回一个字节数组,还可以把结果传递给String的构造器,以便创建字符串输出。此方法确保了当读入文件的所有字节内容时,文件属性是关闭的,否则就会出现IO异常或其它的未检查异常。这意味着在读文件到最后的块内容...
用Go语言绘制Go语言地鼠吉祥物

用Go语言绘制Go语言地鼠吉祥物

Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。但Go语言除了擅长处理服务器端任务外,它还可以用来做图。package mainimport ("log""github.com/fogleman/pt/pt")func main() {scene := pt.Scene{}wall := pt.SpecularMaterial(...
Java观察者模式(Observer模式)

Java观察者模式(Observer模式)

Java深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解。设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Observer(观察者)模式是比较常用的一个模式,尤其在界面设计中应用广泛,而本教程所关注的是Java在电子商务系统中应用,因此想从电子商务实例中分析Observer的应用。虽然网上商店形式多样,每个站点有...
QWT的编译与配置

QWT的编译与配置

QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等。该工具库基于Qt开发,所以也继承了Qt的跨平台特性。现...
Python复制目录结构小脚本

Python复制目录结构小脚本

引言有个需要,需要把某个目录下的目录结构进行复制,不要文件,当目录结构很少的时候可以手工去建立,当目录结构复杂,目录层次很深,目录很多的时候,这个时候要是还是手动去建立的话,实在不是一种好的方法,弄不好会死人的。写一个Python脚本来处理吧。首先了解写python脚本前,先了解几个东西#!/usr/bin/python这个东西写过脚本的人都知道,用来标明该脚本的执行器,类似的还有#!/bin/bash 通过bash来执行#!/usr/local/php...
Erlang中的基本元素操作

Erlang中的基本元素操作

Erlang shell中,用句号加空格、tab或回车来结束表达式,%表示注释的起点,;隔离子句。模块是.erl 文件,库的头文件.hrl, shell中的编译时c(),外编译命令时erlc, 退出shell用q(),或erlang:halt().变量以大写字母开头,且不能重新绑定变量,只能一次性赋值,具有不可变状态。原子是全局的,不需要宏定义或包含文件,以小写字母开头,还可放在单引号内,是极简表达式。元组tuple是一些数量固定的项目归组成单一实体{,}...
Erlang中的模块与模式匹配

Erlang中的模块与模式匹配

模块是Erlang的基本代码单元,erl文件编译后以.beam作为扩展名,采用UTF8字符集,.erl文件示意如下:-module(模块名,与存放模块的文件名相同)-export([方法名/输入参数的个数])Method1( {a,b,c})->a*b*c;Mehtod2({d,e})->d-e.模块属性有两种类型:预定义型和用户定义型。Erlang中用于代表函数的数据类型被称为fun,相当于python中的lambda,一般用于1) 对列...
编程基本功触类旁通

编程基本功触类旁通

Spark 是用scala写的,storm是clojure开发的,docker采用了go, 各种编程语言层出不穷,但其实都是马甲,作为一个程序员,我们需要理解那些相通的本质,做到触类旁通.程序中的基本逻辑控制——跳转,在汇编语言中早就有满足条件后跳转的命令了。所谓跳转,就是告诉机器到那去干活. 就像过去的接线员那样,因而C语言中有个goto语句,它是跳转的最直接的解释. 如果程序中goto多了,恐怕没谁能看懂了. 为了避免goto语...
Linux内核源码学习之 内核页表打印

Linux内核源码学习之 内核页表打印

本学期Linux内核实验最后是打印内核页表,线性地址----物理地址我看到这个实验题目的时候想到的就是这个init函数(因为这部分当时就是我讲的^_^),这个函数是初始化linux内核页表的,也就是将32位系统中3G以上的896M线性地址映射到物理地址的0-896M,在其调用者paging_init函数中还处理了其他的情况,比如固定映射之类的。那属于高端内存映射那一块的内容,目前我们先看一下如何将内核页表3G~3G+896M的线性地址对应的物理地址打印出来...
Java访问模式(Visitor者模式)

Java访问模式(Visitor者模式)

Visitor定义:作用于某个对象群中各个对象的操作。它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作。在Java中,Visitor模式实际上是分离了collection结构中的元素和对这些元素进行操作的行为。为何使用Visitor模式Java的Collection(包括Vector和Hashtable)是我们最经常使用的技术,可是Collection好象是个黑色大染缸,本来有各种鲜明类型特征的对象一旦放入后,再取出时,这些类型就消失了。...
C++ 全局变量初始化学习笔记

C++ 全局变量初始化学习笔记

注意:本文所说的全局变量指的是 variables with static storage,措词来自 C++ 的语言标准文档。什么时候初始化根据 C++ 标准,全局变量的初始化要在 main 函数执行前完成,常识无疑,但是这个说法有点含糊,main 函数执行前到底具体是什么时候呢?是编译时还是运行时?答案是既有编译时,也可能会有运行时(seriously), 从语言的层面来说,全局变量的初始化可以认为分成以下两个阶段(c++11 N3690 3.6.2):...
Linux下动态链接实现原理

Linux下动态链接实现原理

符号重定位讲动态链接之前,得先说说符号重定位。C/C++ 程序的编译是以文件为单位进行的,因此每个 c/cpp 文件也叫作一个编译单元(translation unit), 源文件先是被编译成一个个目标文件, 再由链接器把这些目标文件组合成一个可执行文件或库,链接的过程,其核心工作是解决模块间各种符号(变量,函数)相互引用的问题,对符号的引用本质是对其在内存中具体地址的引用,因此确定符号地址是编译,链接,加载过程中一项不可缺少的工作,这就是所谓的符号重定位...
C++11 内存模型详解

C++11 内存模型详解

关于乱序首先需要明确一个普遍存在,但却未必人人都注意到的事实:程序并不总是按照源码中的顺序被执行的,此谓之乱序,乱序产生的原因可能有好几种:编译器出于优化的目的,在编译阶段将源码的顺序进行交换。程序执行期间,指令流水被 cpu 乱序执行。cache 的分层及刷新策略使得有时候某些写,读操作的顺序被重排。以上乱序现象虽然来源不同,但从源码的角度,对上层应用程序来说,他们的效果其实相同:写出来的代码与最后被执行的代码是不一致的。这个事实可能会让人很惊讶:有这样...
<< 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 >>