package cn.felay.io;
import java.io.Externalizable;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInput...
上周五和周末,工作忙里偷闲,在看java cocurrent中也顺便再温故了一下Thread.interrupt和java 5之后的LockSupport的实现。
在介绍之前,先抛几个问题。
Thread.interrupt()方法和InterruptedException异常的关系?是由interrupt触发产生了InterruptedException异常?Th...
1 OOP概述
面向对象基于三个基本概念:数据抽象、继承和动态绑定。通过使用数据抽象,我们可以将类的接口与实现分离;使用继承,可以定义相似的类型并对其相似关系建模;使用动态绑定,可以在一定程度上忽略相似类型的区别,而以统一的方式使用它们的对象。
1.1 继承
继承是派生类与基类之间的关系,它们共享了一些公共的东西,而派生类特化了一些本质不同的东西。类与类之间的继承关系构成了继承层...
(一)
下面代码:
tr1::shared_ptr pInv(createInvestment());
int daysHeld(const Investment* pi);
我们要调用daysHeld函数的话,就必须传递一个Investment指针,但是我们现在只有pInv对象,所以我们需要一个函数可将RAII class(本例为tr1::shared_ptr)对象转换为其所内含之原始资...
(一)
先看下面的代码:
string* stringArray = new std::string[100];
...
delete stringArray;
这样的做法是错误的,因为stringArray所含的100个string对象中的99个可能并没有被适当地删除,因为它们的析构函数很可能没有被调用。
(二)
使用new时发生的事情:
(1)内存被分配出来;
(2)针...
百度百科上介绍序列化是这样的:
序列化 (Serialization):
将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
序列化使其他代码可以查看或修改那些不序列化便无法访问的对象实例数据。确切地说,代码执行序列化需要特殊的权限:即指定了 Serial...
一、由编译器生成的成员函数
1)默认的构造函数
默认构造函数定义为没有参数,或者有默认的参数值。当用户自己未定义时,系统可以提供。
自动生成的默认构造函数,会调用继承的基类的默认构造函数来构造派生类的基类部分。
若Star是一个类,则
Star orig;
Star array[6];都将需要默认构造函数。
如果自己定义了构造函数,则系统不会再生成默认构造函数,这个时候最好自己要定义...
开源j4cms使用技术,SpringMVC,Spring Security, Hibernate, jQuery及其扩展插件,Tiles2和FreeMark。.html请求,页面与数据库缓存Ehcache,顶住高访问量,页面缓存可设置启用关闭。...
今天在群里又有一个朋友问到了这样一个练习,我索性将代码贴到这里,下次需要的朋友可以来这里看。用到知识点:数组、集合、IO流问题描述:在如下图所示的一个txt文件中读取数据到内存,然后统计列除过0的各个数字的个数(放入Map)并按照列的数据大小排序。代码:package com.test;
import java.io.BufferedReader;
import java.io.File;
im...