摘要: 在java下 写入大数据(几十万甚至上百万条数据)是一个很考验效率的问题,下面就程序中遇到的一些问题进行总结:实验题目: 用多线程生成100个不重复的随机数,并分别存储到本地文件和DB中;若此处的100个改为1w会如何呢?三种写数据的方法:1.使用SQL语句 直接插入数据库相关代码如下 使用预编译SQL语句进行操作PreparedStatement pstm = con.prepareStatement("insert into number(value) values(?)");//预编译sql语句//方法1 使用sql语句 一条一条插入数据库 while (it.h.. 阅读全文
posted @ 2013-03-25 09:43 晒米的猫 阅读(674) 评论(0) 推荐(0) 编辑
摘要: Java核心技术读书笔记第一卷:名词解释:JIT编译器 解释到本地机器码 加速执行速度(JUST IN TIME)代替技术:hotspotApplet = web程序UML:类的三个关系:依赖、继承、聚合Jdk与jre:jdk=java development kit(面向开发者);jre=java runtime environment(面向使用者)JUnit为 常见的单元测试框架String.class是一个Class<String>类的对象与C++区别:字符串不可修改字符串比较:equals函数Scanner可以控制输入 java.util.*包内使用标准输入输出:Syste 阅读全文
posted @ 2013-03-25 09:11 晒米的猫 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 注意代码生成的四个选项MD,MDd,MT,MTd,分别代表的是多线程dll(链接libcmt),多线程dll调试模式,多线程静态链接(链接MSVCRT.LIB),多线程静态链接调试模式。开关对应的库版本/MDMSVCRT.LIB多线程DLL的Release版本/MDdMSVCRTD.LIB多线程DLL的Debug版本/MTLIBCMT.LIB多线程静态链接的Release版本/MTdLIBCMTD.LIB多线程静态链接的Debug版本/clrMSVCMRT.LIB托管代码和非托管代码混合/clr:pureMSVCURT.LIB纯托管代码在使用LIB进行文件的链接操作时,可能会产生一系列的错误, 阅读全文
posted @ 2012-06-20 09:09 晒米的猫 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 为了保证一个头文件不被多次包含,我们使用宏定义来进行避免,有两种方法,介绍如下,并对它们进行区别:1.#ifndef DFNAME #define DFNAME ...... #endif2.#pragma once两种方法都可以防止头文件被多次包含,但是它们是有区别的。第一种方法使用宏定义,排除了文件被多次包含可能。缺点:有可能两个不同的头文件,宏名字相同,导致找不到对应头文件。第二种方法使用编译器默认的定义,可以排除文件包含可能,根据头文件名字进行排除。缺点:不能排除头文件名不同,但是内容完全相同的头文件。 阅读全文
posted @ 2012-05-15 16:09 晒米的猫 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 用于表示共边的数据结构,存储边、点、面。实例数据结构如下:(能够保证数值不稳定性)class WE_Edge { WE_Vertex vert1, vert2; WE_Face aFace, bFace; WE_Edge aPrev, aNext, bPrev, bNext; // clockwise ordering WE_EdgeDataObject data;}class WE_Vertex { List<WE_Edge> edges; WE_VertexDataObject data;}class WE_Face { List<WE_Edge> edges; W 阅读全文
posted @ 2012-04-27 10:37 晒米的猫 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 维基百科说明(中文的实在太不详细,英文的够全面): http://zh.wikipedia.org/wiki/%E6%99%BA%E8%83%BD%E6%8C%87%E9%92%88 http://en.wikipedia.org/wiki/Smart_pointer智能指针:智能指针的提出是为了减少指针错误使用的风险(如边界越界、野指针、内存泄露等),使用智能指针,能够自动进行垃圾的回收和处理。保留效率的情况下,提升安全性。智能指针主要用于内存管理,也用于网络资源的管理等。如果某一语言已经有了完善的内存回收机制(如java C#),则智能指针的存在是没有意义的。实现... 阅读全文
posted @ 2012-04-27 09:47 晒米的猫 阅读(417) 评论(0) 推荐(0) 编辑
摘要: static_cast与reinterpret_cast均是强制转换符,它们的区别如下:(1)static_cast要相对安全一些,而reinterpret_cast不那么安全。(2)static_cast被作为隐式转换使用,reinterpret_cast被作为二进制转换重新解释(没有数位损失)。即操作的对象不同,一个针对类,数据类型的转换,一个是针对二进制位上的copy。注意:static_cast不能转换掉expression的const、volatile、或者__unaligned属性。http://baike.baidu.com/view/1263731.htm 阅读全文
posted @ 2012-04-26 16:21 晒米的猫 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 使用gettickcount获取时间 测试效率 饼问题:我的思路:(1)选出最大饼(2)起始饼到最大饼进行翻转(3)最大饼在最上,再全部翻转,最大饼在最下面(4)下一次从剩下饼中选出最大,loop(我考虑的改进):Developing1:删除(3),每次从剩下饼中,找最大,loopDeveloping2:在Developing1基础上,对于(1),使用双指针找最大饼【或直接使用双向指针加速】但是上述两种改进 并不符合题意。。。。上述算法实现:思路1: ///////////////////程序之美 1.3 算法实现///////我的算法///////////////////////////// 阅读全文
posted @ 2012-04-26 16:13 晒米的猫 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 先注:在编程问题中遇到的一些问题:C语言中表示二进制数 采用0x或者0,而不采用显示二进制表示。所谓象棋问题就是使用避免将帅相遇而进行的一种输出工作。算法抽象:两个难点:(1)表示将帅的位置。(2)使用一个变量表示两个位置。最笨的办法 多个变量解决该问题: //for (int i= 0;i < 3;i ++) //{ // for (int j = 0;j < 3;j++) // { // for (int t = 0;t < 3;t++) // { // if (j == t) // { // for (int k = 0;k < 3;k++) // { // .. 阅读全文
posted @ 2012-04-26 16:13 晒米的猫 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 要想随心所欲控制CPU,其实就是控制了CPU的空闲和忙的时间比例。从两方面入手:让CPU忙:循环函数让CPU闲:sleep函数有以下一些方法:1.计算CPU 参数写循环以我的计算机为例:CPU 2.4ghz 则设每个CPU时间片中执行两条汇编指令,又循环的汇编指令为:loopmov dx i;add dx 1;mov i dx;cmp i n;jmp 1则总共需要的2.4*10^9*2/5为 运行这段汇编,每秒执行的次数。代码:////////////alg1///////////////////计算cpu的频率,每个时间片执行两条汇编指令 则计算得 CPU 2.4ghz 结果:不能实现/// 阅读全文
posted @ 2012-04-26 16:13 晒米的猫 阅读(599) 评论(0) 推荐(0) 编辑