摘要:
randomized_select使用划分方法randomized_partition(),返回主元位置q(第k小元素)。要查找的是第 i 小元素,若恰好等于k,那么直接返回。如果 i < k,则继续在[p, q - 1]中搜索第 i 小元素。如果 i > k,则继续在[q + 1, r]中搜索第 i - k 小元素。int randomized_select(int A[], int p, int r, int i)
{ if (p == r) return A[p]; int q = randomized_partition(A, p, r); ... 阅读全文
随笔档案-2012年02月
《算法导论》第9章 顺序统计学 (1)最小值和最大值
2012-02-25 22:58 by java线程例子, 265 阅读, 收藏,
摘要:
1. 查找最小值逻辑比较简单,用第一个元素来初始化最小值min,然后与数组中其余元素比较,找出最小值。时间复杂度是O(n),已经最优化了。int minimum(int A[], int len)
{ int min = A[0]; int i; for (i = 2; i < len; i++) if (A[i] < min) min = A[i]; return min;
}2. 同时找最大和最小值如果依然采用前面的方法,用第一个元素初始化min和max。然后将min和ma... 阅读全文
Java数据库操作时一点常见的错误
2012-02-25 16:36 by java线程例子, 304 阅读, 收藏,
摘要:
数据库连接是我们通常会创建出Connection、Statement、ResultSet的对象,新手可能会如下使用:Connection connection=DriverManager.getConnection(“数据库 的url”);
Statement statement =connection.createStatement();
//接着是一些操作数据库的JDBC代码
ResultSet resultSet = ……
……
resultSet.close();
statement.close();
connection.close();以上方法是错误的。因为如果与数据库创建... 阅读全文
Visual Studio C++6.0下载地址
2012-02-25 15:57 by java线程例子, 213 阅读, 收藏,
摘要:
Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。 虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。 Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated devel.. 阅读全文
C++数据类型与C#对应关系 c#调用WINDWOS API时,非常有用
2012-02-25 08:20 by java线程例子, 249 阅读, 收藏,
摘要:
C++ 输入输出 C# ==================================char chr[255] O StringBuilderKCA_DIR I intLPCSTR I stringint I intLPSTR O StringBuilderint* O out intDWORD I intDWORD* O out intBOOL I boolRc_DBMgr I IntPtrlong* O out long API与C#的数据类型对应关系表 API数据类型 类型描述 C#类型 API数据类型 类型描述 C#类型 WORD 16位无符号整数... 阅读全文
Win32 编程消息常量(C#)
2012-02-25 08:14 by java线程例子, 191 阅读, 收藏,
摘要:
辛辛苦苦整理的,从Delphi中Messages取得,数据绝对正确,为此我编写了一个小程序整理这些,值得收藏:public class WinMessages { #region 基本消息 public const int WM_NULL = 0x0000; public const int WM_CREATE = 0x0001; public const int WM_DESTROY = 0x0002; public const int WM_MOVE = 0x0003; public c... 阅读全文
《算法导论》第7章 快速排序 (四种变形)
2012-02-24 23:19 by java线程例子, 478 阅读, 收藏,
摘要:
这一章的正文及思考题部分讲到了快速排序及其几种变形,包括:Hoare快排,普通快排,随机快排,三数取中快排。这些快排的区别主要是划分方法PARTITION算法的不同:如何选取主元,划分出的两部分范围是什么。根据划分出的范围不同,各变形的QUICKSORT有微小的差别。1. Hoare快排Hoare划分是最初的版本,与《算法导论》中的划分版本相比,它选取第一个元素A[p]为主元。划分后的两部分是:A[p..j]和A[j+1..r],主元可能放入某一个之中。int hoare_partition(int A[], int p, int r)
{ int x = A[p]; in... 阅读全文
Servlet——Java EE应用中另一种常用的组件
2012-02-24 19:58 by java线程例子, 499 阅读, 收藏,
摘要:
1、Servlet是Java EE应用中另一种常用的组件,是继JDBC后,Java EE技术的第二个重要发明。2、JSP与Servlet的区别:JSP是嵌入Java代码的HTML页面,JSP页面是转换为Servlet来执行的。Servlet是嵌入了HTML的Java类。3、Servlet执行请求和响应的处理。4、在Web应用程序中,<servlet>元素是用于描述Servlet的基本元素。<servlet>可以有下面的子元素:·<icon>
·<servlet-name>:定义一个用户友好的名称,用于表示所用到的资源。
阅读全文
《算法导论》第6章 堆排序 (4)Young氏矩阵
2012-02-22 22:08 by java线程例子, 259 阅读, 收藏,
摘要:
1. 什么是Young氏矩阵?一个 m * n 的矩阵,其中每一行的数据都从左到右排序,每一列的数据都从上到下排序。其中用 ∞ 代表不存在的元素,一共可以存放 r ≤ mn 个有限的数。如下面程序实现中用来测试的Young氏矩阵:{ 1, 3, 5, 7, 8, 11 }{ 4, 6, 9, 14, 15, 19 }{ 10, 21, 23, 33, 56, 57 }{ 34, 37, 45, 55,∞, ∞}2. 相关问题及思路2.1实现EXTRACT-MIN的算法,使其运行时间为O(m + n)。参考最大堆的方法MAX-HEAPIFY,两者的相似性是:一个元素 i 的改变,破坏了堆... 阅读全文
用C做的电子时钟程序
2012-02-22 00:28 by java线程例子, 265 阅读, 收藏,
摘要:
效果图/*-----------------------------电子时钟源代码---------------------------------*//*------------------------------预处理----------------------------------------*/#include<graphics.h>#include<math.h>#include<dos.h>#include<stdio.h>/*-----------------------------宏定义--------------------- 阅读全文
Field 'id' doesn't have a default value
2012-02-20 15:46 by java线程例子, 221 阅读, 收藏,
摘要:
转至:http://blog.csdn.net/q283595518/article/details/4122053Field 'id' doesn't have a default value昨晚做项目的时候遇到一个问题,在测试数据存储的时候老是报Field 'id' doesn't have a default value异常,从网上找了好久,根据各位大虾的说法也测试了好久好久,可就是没发现原因所在,鼓捣了两三个小时的时间,最后总算找到问题所在:原来是我的数据设计的时候,把主键的类型定义为int的,原本想是用自增的方式来的,可是由于自己的粗心 阅读全文
《算法导论》第8章 线性时间排序 (1)计数排序
2012-02-19 15:32 by java线程例子, 163 阅读, 收藏,
摘要:
一种简单的实现是得到数组C,C[i]表示数组A中值为i的元素个数。C = { 2, 0, 2, 3, 0, 1 }就表示两个0,两个2,三个3,一个5。然后将这些数字依次存到数组B中。#include <stdio.h>#include <stdlib.h>void printArray(int[], int);void counting_sort(int A[], int B[], int len, int k){ int* C = calloc(k + 1, sizeof(int)); int j; for (j = 0; j < len; j++) C[A[ 阅读全文
should be mapped with insert="false" update="false"
2012-02-19 12:56 by java线程例子, 237 阅读, 收藏,
摘要:
我 找了好久原来是个低级错误,在copy的时候不小心的缘故<hibernate-mapping package="com.strive.entity"> <class name="Dept" table="Dept"> <id name="deptno" column="deptno" type="integer"> <generator class="assigned"></generator> 阅读全文
新概念新技术收集系列(1)
2012-02-18 08:25 by java线程例子, 198 阅读, 收藏,
摘要:
1) NFC近场通讯:NFC是Near Field Communication缩写,即近距离无线通讯技术,它是一种非接触式识别和互联技术,能够在移动设备、消费类电子产品、PC 和智能控件工具间进行近距离无线通信。NFC技术的出现为人们提供了一种更加简单、触控式的解决方案,能够让消费者更加简单直观地交换信息、访问内容与服务。2) 裸眼3D技术3)AR技术:Augmented Reality(中文翻成增强实境),这个词近来在网上出现的越来越多,Augmented Reality可以算是Virtual Reality〈虚拟实境〉当中的一支,不过略为不同的是,Virtual Reality是创造一个全 阅读全文
《算法导论》第6章 堆排序 (2)优先级队列
2012-02-17 22:25 by java线程例子, 191 阅读, 收藏,
摘要:
6.5 优先级队列在实际中堆的一个很常见的应用:用来实现高效的优先级队列。优先级队列分为最大优先级队列和最小优先级队列。最大优先级队列的一个应用是在一台分时计算机上进行作业调度。需要在堆中的每个元素里存储对应对象的柄(handle)。#include <stdio.h>#define PARENT(i) ((i) / 2)int heap_maximum(int A[]){ return A[1];}//HEAP-MAXIMUM与HEAPSORT中的for循环体一样。// 将最后一个元素挪到根位置,堆大小减一,保持堆性质。int heap_extract_max(int A[], 阅读全文
浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
2012-02-17 21:42 by java线程例子, 553 阅读, 收藏,
摘要:
如同其它的Swing组件,JTable使用MVC(模型、试图、控制器)设计方式,将可视化组件(JTable实例)从其数据(TableModel实现)中分离出来。·TableModel接口1、TableModel为JTable提供·显示的数据·表格的维数·表格中每一列所包含的数据类型·应该显示的列标题·是否允许编辑指定单元格的值2、实现TableModel:TableValues类importjavax.swing.table.AbstractTableModel;
/** * 注意:一般使用AbstractTableModel创建Ta 阅读全文
关于程序员成长的一点思考
2012-02-16 21:32 by java线程例子, 177 阅读, 收藏,
摘要:
如果止步不前,多少年后,我们与新进入这个行业的新人们没多少区别。工作经验是廉价的,熬年头就能换来,我们没有多少竞争力。只有努力提高自己,让时间换来的不仅仅是工作经验的增加,而是内力的增强,才会让自己更有价值,不会轻易被淘汰。转载自:http://hp.dewen.org/?p=56程序员的我们,是否想过今后的路该怎么走、如何发展、技术怎样提高?其实这也是我一直在思考的问题。下面就此问题,分享下我的看法。因为我阅历有限,有什么说的不对的,大家一起喷!一、程序员应该打好基础1. 现在开发工具众多、语言泛滥,经常听人说”不学C\C++神马都是浮云”、”C\C++才是万王之王”,C\C++就真比PHP 阅读全文
《算法导论》第6章 堆排序 (3)K路归并
2012-02-15 21:58 by java线程例子, 670 阅读, 收藏,
摘要:
问题描述:问题来自习题6.5-8 给出一个时间为O(nlgk),用来将k个已排序链表合并为一个排序链表的算法。此处n为所有输入链表中元素的总数。(提示:用一个最小堆来做k路合并)。在K路归并问题中,取出最小堆的根元素(最小元素)后,如果此元素没有后继元素(next为空),则有两种方案:一、从K路中的另一个链表取出一个元素放到根位置。二、将堆底部最后一个元素挪到根位置,并将堆大小减一。此处采用方案二。堆大小每减一,说明K路中某一个链表已处理完。当堆大小为零时,处理结束。源码与注释:// 链表结点类classNode {intvalue;Nodenext;}publicclassKMerge {p 阅读全文
自制简单的Java下载器——来自《Java高级编程》的一个关于线程的例子(带上部分注释)
2012-02-14 23:54 by java线程例子, 491 阅读, 收藏,
摘要:
这俩天看《Java高级编程》,看到下面这例子,觉得挺适合新手学习Thread的,所以记录下来,供向我这样的菜鸟学习学习,大牛可以直接忽略。想法:完善并提高此程序的功能,做个专属自己的下载器。(2012/02/14 23:56 )此程序主要有3个类:Downloader、DownloadManager、DownloadFiles。1、Downloader:读取并写入数据2、DownloadManager:主要用于控制下载,有开始、暂停、恢复、停止等功能3、DownloadFiles:用于在文本框中输入URL并创建对应的DownloadManager类的实例涉及到的知识点有:线程(Thread)、 阅读全文
《算法导论》第6章 堆排序 (1)最大堆与堆排序
2012-02-14 22:40 by java线程例子, 223 阅读, 收藏,
摘要:
6.1 堆“堆”这个词最初是在堆排序中提出的,但后来就逐渐指“废料收集存储区”,像Lisp和Java中提供的那样。(二叉)堆是一种数组对象,可以被视为一棵完全二叉树。length[A]是数组中的元素个数,heap-size[A]是存放在A中堆的元素个数。树的根是A[1]。堆的重要函数:max_heapifybuild_max_heapheapsort6.2 - 6.4 最大堆// 将LEFT和RIGHT定义为宏(避免小函数调用的开销)// 注意宏的定义要加上括号避免文本替换时运算符问题#include <stdio.h>#define LEFT(i) (2 * (i))#defin 阅读全文
基于IIS/ASP.NET开发的大型网站汇总(备查)
2012-02-14 21:15 by java线程例子, 336 阅读, 收藏,
摘要:
首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛。只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已。同时,也希望广大Microsoft同志们不要太妄自菲薄,有点信心!下面一一列举几个:http://www.msn.com/ http://www.live.com/ (包括skydrive、hotmail等)http://www.bing.com/根据comScore今年11月份的统计,微软网站已经超过雅虎、facebook成为仅此于Google的美国第二大网站。如果对这基于windows server/IIS/A 阅读全文
《C和指针》第14章 预处理器
2012-02-12 17:57 by java线程例子, 198 阅读, 收藏,
摘要:
14.2.1 宏#define包括一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)。#define SQUARE(x) x * x则程序中的SQUARE(5)会被替换成:5 * 5警告:例1:a = 5;printf("%d\n", SQUARE(a + 1));会被替换成5 + 1 * 5 + 1,打印结果是11,不是36。例2: #define SQUARE(x) (x) + (x) a = 5; printf("%d\n", 10 * SQUARE(a));会变成10 * 5 + 5,打印结果是55,不是100。正确定义为:#de 阅读全文
《Shell脚本学习指南》第四章 文本处理工具
2012-02-11 22:47 by java线程例子, 168 阅读, 收藏,
摘要:
4.1 排序文本4.1.1 行的排序未提供命令行选项时,整个记录会根据当前locale所定义的次序排序。在传统的C locale中,也就是ASCII顺序。4.1.2 以字段排序-k选项的后面接着的是一个字段编号,或者是一对数字。每个编号后面都可以接一个点号的字符位置,或修饰符字母。如果仅指定一个字段编号,则排序键值会自该字段的起始处开始,一直继续到记录的结尾(而非字段的结尾)。如果给的是一对用逗号隔开的字段数字,则排序键值将由第一个字段值的起始处开始,结束于第二个字段值的结尾。使用点号表示字符位置。-k2.4, 5.6指的是从第二个字段的第四个字符开始比较,一直比到第五个字段的第六个字符。$ 阅读全文
《Shell脚本学习指南》第三章 查找与替换
2012-02-11 17:10 by java线程例子, 176 阅读, 收藏,
摘要:
3.1 查找文本grep:使用POSIX定义的基本正则表达式(BRE)。egrep:使用扩展正则表达式(ERE)。fgrep:快速grep。使用优化的算法,匹配固定字符串而非正则表达式。1992 POSIX标准将这三个改版整合成一个grep程序。$ who | grep -F austen使用-F选项查找固定字符串。事实上,只要匹配的模式里未含有正则表达式的meta字符,则grep默认行为模式就等同于使用了-F。3.2.6 在文本文件里进行替换一般来说,执行文本替换的正确程序应该是sed - 流编辑器。sed 's/:.*//' /etc/passwd | 删除第一个冒号之后的 阅读全文
分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(3)
2012-02-11 08:41 by java线程例子, 294 阅读, 收藏,
摘要:
测试:1)实体类,这个类没有采用元数据匹配的方式,而是采用专门的类来存储Map信息,主要是为了进行表达式书写 public class TestEntity { private static readonly TableInfo _TableInfo = new TableInfo(){ TableName="EEEE"}; public static TableInfo TableInfo { get { return _TableInfo; ... 阅读全文
分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(2)
2012-02-11 08:31 by java线程例子, 168 阅读, 收藏,
摘要:
下面是几个特殊化的表达式类:4)常量表达式: public class ConstExp<T> : DbExpression { public string ParamName { get; private set; } public T Value { get; private set; } public ConstExp(T Value, string ParamName) : base() { this.Parameters.Add(ParamName, new Par... 阅读全文
分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(1)
2012-02-11 08:26 by java线程例子, 252 阅读, 收藏,
摘要:
完全的模拟表达式非常困难,因为C#目前不支持自定义操作符,只支持操作符重载(希望C#能够提供操作符自定义,如果有语言支持这个,也请告知),思路其实很简单,就是建立自己的类型,并重载一些操作符,模拟这个的目的就是在实体模型下规避直接写数据库SQL语句,用类似于ESQL,Linq语法完成这个工作,提供开发一个一致的实体应用模型:1)参数类,用于传递实际参数,最终转换成ADO.Net的命令中需要的参数:public class Parameter {//没有具体实现,这里只需要模拟 }2)表达式接口:public interface IDbExpression { ... 阅读全文
springmvc简单示例
2012-02-09 18:15 by java线程例子, 277 阅读, 收藏,
摘要:
类结构图:jar包:Webroot目录:1.==============================package com.strive.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;import com.strive.ser 阅读全文
Dotnet跨应用程序域访问和需要特别注意的地方(WCF消息通道处于错误状态异常中的一种情况)
2012-02-06 19:34 by java线程例子, 328 阅读, 收藏,
摘要:
今天在做分布式计算原型的时候出现了WCF调用错误,错误大意是指消息通道处于错误状态,经过跟踪调试,发现是由于跨域调用的问题造成的.问题场景是这样:客户端C通过WCF调用远程服务,该服务S启用一个新的应用程序域AD1,动态加载目标程序集,并执行该程序集中类CL的一个方法M,并将该方法的返回值(类型为T1)返回客户端C.这个应用程序域AD1虽然与主应用程序域都属于同一进程,但并不能直接相互访问,必须通过远程调用来实现,当然,由于都是同一个进程下,只要参与这个远程调用的对象都是继承自MarshalObjectByRef,这种远程调用并不需要象通常的那样通过remoting来实现,DotNet会自动处 阅读全文
spring mvc 简单实例
2012-02-06 18:45 by java线程例子, 387 阅读, 收藏,
摘要:
转至:http://blog.csdn.net/dingx/article/details/2242105Spring Framework可以被使用在很多场合之中,考虑到目前大多数Java EE的项目是B/S结构的,所以这里的快速上手教程会以Spring MVC为切入点,用最简单的代码一步一步来实现一个图书列表的页面。在正式动手之前需要做一些准备工作,先安装并设置好JDK 1.5和Tomcat 5,关于数据库及其访问方式可以根据个人习惯进行选择,教程中使用MySQL数据库和Hibernate(映射由Hibernate Annotation实现)。请将实际使用到的jar文件复制到WEB-INF/ 阅读全文
《Java编程思想》之I/O系统
2012-02-05 19:40 by java线程例子, 711 阅读, 收藏,
摘要:
1、Java中“流“类库让人迷惑的主要原因:创建单一的结果流,却需要创建多个对象。2、使用层叠的数个对象为单个对象动态地、透明地添加职责的方式,称作“修饰器“模式。修饰器必须与其所修饰的对象具有相同的接口,这使得修饰器的基本应用具有透明性——我们可以想修饰过或没有修饰过的对象发送相同的消息。3、为什么使用修饰器? 在直接使用扩展子类的方法时,如果导致产生了大量的、用以满足所需的各种可能的组合的子类,这是通常就会使用修饰器——处理太多的子类已经不太实际。4、修饰器的缺点:增加代码的复杂性。5、JavaI/O类库操作不便的原因在于:我们必须创建许多类——“核心”I/O类型加上所有的修饰器,才能得到 阅读全文
《C和指针》读书笔记
2012-02-04 16:21 by java线程例子, 200 阅读, 收藏,
摘要:
看过了经典的K&R C,又看了这本Pointers on C,温习了C语言的基本语法。在重温过程中,感觉需要重点把握的知识是指针、结构和动态内存分配。这对今后的算法和操作系统方面的研究学习很有帮助。3.2.3 声明指针int* b, c, d;本以为这条语句把三个变量声明为整型的指针,但事实并非如此。星号*只对b有用,其余两个变量只是普通的整型。正确语句:int *b, *c, *d;3.3 typedef允许为各种数据类型定义新名字。#define无法正确地处理指针类型,如下:#define d_ptr_to_char char *d_ptr_to_char a, b;只正确地声明了 阅读全文
《Java编程思想》之对象的集合(数组、List、Set、Map)二
2012-02-03 22:07 by java线程例子, 253 阅读, 收藏,
摘要:
上接:《Java编程思想》之对象的集合(数组、List、Set、Map)一22、使用自己创建的类作为HashMap的“键”,需要同时覆盖hashCode()和equals()。原因如下:1).默认的hashCode()继承自Object,它默认是使用对象的地址计算散列码。因此即使俩个对象的实例的内容相同,对象的地址是不同的,所以默认的hashCode()得到的散列码是不同的。如下例子:import java.util.HashMap;
import java.util.Map;
public class TestHashMap{ private int id; public Tes... 阅读全文
用DotNet做简单的分布式计算的几个关键技术点
2012-02-03 21:39 by java线程例子, 294 阅读, 收藏,
摘要:
hadoop的数据流分布式处理模型,是分布式计算模型的一种实现,hadoop对海量文件数据比较适合,但对于很多公司的应用系统而言,基本都是基于数据库的,并没有多少文件数据需要实时分析,就是日志文件,也可以放在数据库中,特别是用户操作日志(不是系统级日志),当然,就是存成文件,格式和内容也基本是确定的,分析的时候并不需要分拆和Map.其实只要一个简单的分布式分析(reduce)即可。因此模型上没必要搞得像hadoop那么复杂(虽然说hadoop原理和实现也不是很复杂).何况大部分应用系统需要分析的数据还达不到这个级别.考虑到一般的公司应用的实时数据存放都是确定的,也就是分析数据的来源基本是确定. 阅读全文
WCF 学习记录(2)
2012-02-03 20:42 by java线程例子, 184 阅读, 收藏,
摘要:
1、突破WCF一些限制的方法: A)通过配置来完成 可在web.config或者app.config中配置,这种方法可参见前面的文章; B) 可通过代码实现 前面的方法有个缺陷,就是自己写宿主服务的时候实现比较难,而且我感觉不适很方便,我喜欢在代码中控制: public static ChannelFactory<ISvc> CreateChannelFactory<ISvc>(string RemoteAddress, string ServiceName) { BasicHttpBinding theBinding = new BasicHttpBi... 阅读全文
《Java编程思想》之对象的集合(数组、List、Set、Map)一
2012-02-03 00:19 by java线程例子, 278 阅读, 收藏,
摘要:
1、Arrays类:提供了操作数组的一些static方法,如fill() 用于以某个值填充整个数组。sort() 用于对数组的排序,需要参数的类型实现Comparable接口binarySearch() 用于在已经排序的数组中查找元素。asList() 接受任意的数组为参数,并将其转变为List容器。……2、如果一个字符串需要多次改变其值,那么应该使用更高效的StringBuffer取代String。3、复制数组System.arraycopy(),用它复制数组比用for循环复制要快得多。4、基本类型数组和对象数组都可以复制,然而,如果复制对象数组,那么只是复制了对象的引用——而不是对象本身的 阅读全文
《Java编程思想》之类型检查(RTTI与反射机制)
2012-02-01 16:57 by java线程例子, 295 阅读, 收藏,
摘要:
1、类型时类型识别(run-timetype identification,RTTI):当之有一个指向对象的引用时,RTTI可以让你找出这个对象的确切类型。2、Java运行时识别对象和类的信息,主要有俩种方式:1).一种是“传统“RTTI,它假定我们在运行时已经知道了所有的类型。2).另一种是“放射“机制,它允许我们在运行时获得类的信息。3、Class对象:每个类都有一个Class对象,保存在一个同名的.class文件中,它包含了与类相关的信息。4、在运行时,当我们想生成这个类的对象时,运行这个程序的Java虚拟机(JVM)首先检查这个类的Class对象是否已经加载,就会根据类名查找.clas 阅读全文