- 博客(55)
- 资源 (5)
- 收藏
- 关注
原创 java拾遗------面向对象知识
java面向对象1.对象一个对象由一组属性和对这组属性进行操作的一组服务组成。 一个对象的生命周期包括三个阶段:生成、使用、消除。 当不存在对一个对象的引用时,该对象成为一个无用对象。Java的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。当系统内存用尽或调用System.gc( )要求垃圾回收时,垃圾回收线程与系统同步运行。2.类Java中的类实现包括两个部分:类
2015-09-24 12:10:39
597
原创 java拾遗--有关数组和list的转化
在使用数组的过程中,经常会用到的list和数组的转换。 再次进行一下记录: list转数组:(区分int:基本类型, Integer:int的包装类型,类,对list适用)。 List<Integer> list = new ArrayList<Integer>(); list.add(20); list.add(10); list.
2015-09-20 23:27:00
488
原创 Java拾遗------IO流
关于java的io的,共有下面几块内容。1. 文件的编码我们常用的编码的方式有GBK,utf-8,utf-16be(java默认编码)等。 在java中,可以将一个字符串或者文本转换成字节序列。用到的方法是: String.getBytes(),参数可以是任一的编码格式。 其中要熟记下面几种编码在java文件中的区别:gbk编码:中文占用两个字节,英文占用一个字节。utf-8编码:中文占用
2015-09-03 14:23:41
476
原创 Java拾遗------JDBC
JDBC全称:java data base Connectivity(java数据库链接) 可以为多种数据库提供统一的访问(Oracle,mysql,sql server) 体现了java“编写一次,到处运行”。内容实现查看,添加,修改,删除等功能 工具:mysql,myeclipse。使用详解:1.jdbc编程步骤:加载驱动程序(反射机制):Class.forName(driverClas
2015-09-01 21:49:39
480
转载 Java拾遗-------多线程
一.os中进程和线程的区别现在的os都是多任务操作系统,多线程是实现多任务的一种方式。 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。
2015-08-31 10:06:18
455
原创 Thinking in java学习笔记(一)--前三章
以后准备从事java方面的工作,也是为了面试笔试能得到一个好成绩,打算读一下本书,并记录一下学习心得。一.对象入门思考对象的时候,需要采用形象思维,而不是程序化的思维。1. 隐藏必要的内容对类创建者这来说,目标是从头构建一个类,只向客户程序员开放有必要开放的东西(接口:规定了可对一个特定的对象发出哪些请求),其他所有细节都隐藏起来。 “ public”(公共)意味着后续的定义任何人均可使用。而在另
2015-08-07 09:27:15
487
原创 Berkeley's SICP in python3(六)
上面两章介绍了程序两种基本元素的联系:数据和函数。 函数可以利用高阶函数,从而把函数看成数据进行操作;而数据也可以利用消息传递使其具有行为和称为一个对象。 也知道了编写大型程序的技巧,向函数式编程,数据抽象,类的继承,泛型函数等等。这些核心概念构成一个强大的基础,可构建模块化的,可维护的, 可扩展的程序。 本章将关注程序自身。python程序不过是一些文本,怎么知道程序表达的意思。因此应该学习
2015-08-05 14:50:20
692
原创 Berkeley's SICP in python3(五)
上面讲到了序列和可变的数据,比如tuple,list,dict,并用基本类型对它们进行的抽象实现。这一届主要讲OOP。5面对对象程序一个对象是指,并且有方法和属性,通过点号访问。5.1对象和类类是对象的模板,对象是类的一个实例。5.2定义类类的声明如下:class <name> (<base class>): <suite>name是类的名字,可以选择继承一个类,suite处是类的属性和方法
2015-08-04 16:50:11
531
原创 重新理解计算机(二)
根据上一篇介绍的简单逻辑部件,加上异或门(相异为1),同或门(相同为1),可以构造最简单的多位加减法器,不在详述。为了实现更复杂的功能,接下来要知道反馈和触发器。反馈和触发器 仔细观察这幅图,当开关闭合时,电路连通。磁铁把弹簧片拉下来;电路断开,弹簧片有接通电路,如此反复。如果弹簧片能发出声音,就是一个蜂鸣器或者电铃。 这和反向器很类似。但是同时输出有作为其输入(有延迟)。简单来说,这个电路称为
2015-08-04 10:37:19
521
原创 Berkeley's SICP in python3(四)
上面一篇文章写了前两小结的内容和程序,这篇文章继续第三第四小结。第二章 构建对象抽象3. 序列序列是有序数据值的集合。3.1 嵌套组>>> ((1, 2), (3, 4))((1, 2), (3, 4))3.2 递归列表>>> (1, (2, (3, (4, None))))(1, (2, (3, (4, None))))对于递归列表来说,非为两部分:1:第一个元素 2:其余元素(同时也是列表)
2015-08-03 11:09:36
680
原创 关于c++中的STL的学习与再认识(三)
上一篇讲了经常用到和非常重要的迭代器。Vertor中的数据操作可以用insert()函数往Vertor中插入一个元素: int n[] = { 22, 33, 11, 44, 55, 66, 99, 55, 88 }; vector<int> v1(n, n + 9); vector<int> v2(n, n + 2); vector<int>::iterator it
2015-07-29 16:45:24
445
原创 关于c++的STL的学习与再认识(二)
接上一篇文章。 上一篇文章讲到了容器以及vector,以及相关的函数,比如vector的初始化方法,size(),resize(),push_back(),empty(),clear(),以及对于vector的按值传递和引用传递。 这一篇文章介绍键值对和非常重要的迭代器。STL:标准模板库(Standard Template Library—STL)键值对:在了解迭代器之前,先了解一下键值对。S
2015-07-29 11:14:29
448
原创 关于C++的STL的学习与再认识(一)
以前学习c++的时候,对比较基础的两点有一定的害怕,就是涉及指针的部分和STL。虽然一直在指针方面下功夫学习,也写过文章记录心得,希望以后碰到指针的问题能够解决。至于STL,在之前对基本的算法有了实现,想对STL有一个较深的认识,写下文章记录学习过程。STL:标准模板库(Standard Template Library—STL)容器用途:操作大量数据是会某种用到容器。c语言只有一种内置容器,数组。
2015-07-29 09:28:51
529
转载 关于static在java和c++中的用法小谈(二)
上面一篇是关于java的static的用法。在我阅读程序的过程中,很怕遇到这些关键字,常常搞的一头雾水,希望写完这篇文章能略知一二。C++static在c++中很常用,被用来控制变量的存储方式和可见性。 在c++中static和auto这两个关键字是相对的。 在声明变量时,默认为auto。 比如(auot) int a;(auto) string str1;static int b;sta
2015-07-28 16:53:06
384
原创 关于static在java和C++中的用法小谈(一)
这几天在做一个关于编译原理的课程设计,在用java实现的过程中,经常会遇到static关键字,因此决定查询资料,写一篇文章总结一下其用法,并与c++中的static做比较。java一. static的用途:《java编程思想》:““static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法
2015-07-28 16:31:49
533
原创 再谈c的内存管理及指针问题
关于内存空间的分配内存空间主要由五个部分组成代码段(.text)、数据段(.data)、BSS段(.bss),堆和栈组成,其中代码段,数据段和BSS段是编译的时候由编译器分配的,而堆和 栈是程序运行的时候由系统分配的。布局如下: 下面分别解释各段: BSS段:用来存放程序中未初始化的全局变量和静态变量(初始化分为显式和隐式初始化,未初始化指程序员不初始化的话,自动初始化为0。)不占磁盘空间,
2015-07-22 11:21:46
740
原创 博文:永远不再犯的5个编程错误有感
作为一个编程的新手来说,不可避免的每天遇到一些编程错误,希望得到某种技巧来避免这些这些错误。当然,这是不可能的。因为只有在程序写到一定的数量之后,才有可能避免一些经常犯的编程错误。 作为一个程序员,最坏的情况是根本不知道自己在做错的事情。 绝大部分的不良编程习惯都源于无知,没有其他原因。 作为程序员,我们的工作不仅仅是让我们的程序工作,让用户处理bug。我们的工作是确保用户即使输入错误也不会得
2015-07-19 22:12:27
537
原创 Berkeley's SICP in python3(三)
这段时间读到了第二章,这一章感觉比第一章要难一点,讲的也更抽象。 对于英文不好的我来说,只能选择我觉得重要的点记录一下,并实现里面的全部函数。1. 介绍第一章中了解了计算过程和函数在编程设计中的作用。知道了怎么用原始数据和原始操作符,怎样组成复合函数,创建函数的抽象,了解了高阶函数,这些是编程的本质。 本章重点是数据。1.1. 对象的比喻分清函数和数据:函数对数据进行操作。当将函数作为数据是,
2015-07-19 21:43:32
675
原创 关于python的输出格式控制和函数format
举个例子: 最简单的输出格式控制:print('%.5f' % 1.1415) # %:格式 .5:小数点后接5位小数 f:间上述所示字符#coding=utf-8'''可以指定所需长度的字符串的对齐方式:< (默认)左对齐> 右对齐^ 中间对齐= (只用于数字)在小数点后进行补齐'''print('1:\t|{0:>10},' .format('sunwen'))prin
2015-07-19 18:27:15
7494
原创 每天学习一点新东西——vim篇(二)
学些这些比较简单的操作时,一定要自己动手实践才会有效果。 本文文章参考vim的简单使用教程第三课 各种查找操作比如我们想在文档中搜索一个简单的字符串like,可以用/命令::/like 找到第一个后继续查找::/(不能用 .命令)如果用到正则表达式查找的话,可以用\来进行转义::.*[]ˆ%/\?~$下面的命令可以将搜索到的结果高亮显示: :set hlsearch向后搜索是用/,向前搜索
2015-07-18 21:35:48
440
原创 markdown编辑器的简单使用
(所有markdown特殊标号后面都应该加个空格) 标题为知笔记为知笔记为知笔记为知笔记为知笔记为知笔记列表 (无序):中间有一个空行文本文本文本 文本(有序)文本文本文本链接与图片 插入链接: 一天学会的it技能 插入图片:类似插入链接,在前面加上!号引用他人文字:在前面加上> 但有清泉洗我心粗体和斜体: 手机 电脑插入代码:@requires_authori
2015-07-18 14:50:32
379
原创 每天学习一点新东西--vim篇(一)
作为程序员来说,编辑器vim和emacs是不可不了解的。一直听说vim的强大,但困于一直用window系统,而写代码也找到了sublime text3这样优秀的编辑器,所以没有学的欲望。从另一方面来说,接触到好多IDE都集成的命令行模式,可见仍有学习的必要。因此打算每天学习一些,包括但不限于vim,以后也可能会学习其他工具或者语言。总之,每天学习一点新的东西,乐此不疲。 第一天: 安装就不过多讲
2015-07-05 16:31:03
585
原创 Berkeley's SICP in python3(二)
上一篇中摘录了第一章中比较重要的句子或者令人可以思考的几句话。 这一遍在看完第一章后打算做一个总结,并完成中间的所有代码。 首先,开篇介绍了的计算机科学(CS)的发展。SICP这门课的语言有scheme换成python后,伯克利便用python来完成这门课,因此接下来介绍了python的一些特性和参考文档(官网),不在详述。 在这一段中最重要的话无关任何语言。 (1)调试的原则:增量测试,缩
2015-07-05 10:34:55
1180
原创 Berkeley's SICP in python(一)
一 Building abstractions with Functions 1 Introduction 所有的计算都是表示信息,指定逻辑并处理它,设计抽象和管理这一逻辑的复杂性。A language isn’t something you learn so much as something you joinAssignment statement :赋值语句 compound e
2015-07-03 11:19:08
2060
原创 算法与数据结构先导章
一. 程序,算法需要度量,不然毫无意义。 二. 计算模型: 1. 正确性 2. 成本:运行时间+所需存储空间 A 无法正确计算每个程序运行的时间。一般用过规模来衡量程序所花时间。(T(n)) B 最坏情况:最先考虑程序执行的最坏情况。 C 理想模型:不依赖程序员,机器,体系结构,从而直接准确的描述,测量并评价算法。 D 图灵机模型:按照一个节拍来运转;用5个状态
2015-07-02 09:04:11
874
原创 javaServlet
一.Servlet:服务器端运行的一段小程序。一个servlet就是一个java类,可以通过请求-响应来运行这个小程序。 Tomcat容器等级; 二.手工编写第一个Servlet 1.继承HttpServlet(实现Http协议) 2.重写doGet()和doPost()方法 3.在web.xml中注册Servlet 三.Servlet的运行流程和生命周期 1.servlet生
2015-06-30 16:12:33
613
原创 有关CPU的一些概念和计算
在CPU运行是,最常想到的就是CPU执行了多少条指令。 IC :程序执行过程中所处理的指令数。 计算机中用IC来表示。比如一个程序运行指令了20条指令。 自然而然想到用CPU时间来表示执行IC条执行用了多长时间。 对于计算机来讲,执行时间可以用运行了多少了时钟周期数数来表示。 CLK:程序执行的总时钟周期数。 通过 CLK*每个周期的执行时间 即可得到CPU的执行时间。 每个周期的
2015-06-20 19:51:52
738
原创 重新理解计算机(一)
从开始学的c语言,到各种高级语言,电路。但从未真正理解计算机最原本的实现方式。最近阅读编码的奥秘,收获很多,从最简单的二进制,继电器开始,简单明了。特此做成笔记,以后参考。 一:逻辑门电路 继电器:输入电流激发电磁铁,电磁铁吸引一根有弹性的金属条作为开关从而输出电流。简单装置如下: 继电器是一个开关,借助电流进行开关操作。 继电器可以执行逻辑操作,进而可以构造逻辑门。 用继电器可以构造
2015-06-16 19:53:09
445
转载 重新教自己学算法之图的最短路(十二)
最短路在实际中有很多应用。最短路的路劲一般不再是路径上的数目,而是路径边上的权值之和。所以最短路径都是用在带权有向图上面的。在最短路径方面,有两个著名的算法:Dijkstra算法和Floyd算法。1:1.Dijkstra算法-从某个点到其余各点的最短路径(贪心算法) 下面根据例子实际说明一下: 一开始我们初始化已选择点集S,我们假设源点为v0,所以先把v0加入S,此时S = {v0}。 我们首先
2015-06-07 20:49:27
447
转载 重新教自己学算法之图的遍历(十一)—深度(DFS)和广度(BFS)
好几天没有补算法了。以前对于图的各种算法没有学好,特此机会重新复习一下图的基本算法。图的定义: 图是一种数据结构,和树一样可以用二元组表示。它可定义为Graph=(V,R)其中,V={x|x∈datatype},R={VR},VR={(x,y)|P(x,y)∧(x,y∈V)}, V是顶点的非空有穷集合,R是边的有穷集合。 也就是说说,图就是记录一些点和点之间的关系的数据结构。图的存储: 1:
2015-06-07 20:35:23
573
原创 linux自学笔记
1:进入root用户:sudo -s或者su + 密码 退出root用户进入普通用户:exit 2:shell命令行:shell是一个程序,它在用户和操作系统之间提供了一个面向行的可交互接口。用户在命令行输入命令,运行在后台的shell程序把命令转换成指令代码发送给操作系统。 3:需要root权限时,多使用sudo工具。 4:pwd:显示当前用户 shell中: ..
2015-06-01 20:54:16
387
原创 mysql用户管理
:一:权限表: 1:User表:mysql最重要的权限表,记录允许连接到服务器的账号信息,里面的权限是全局的。 2:db和host表:db表中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库。Host表中存储了某个主机对数据库的操作权限,配合db权限表对给定主机上数据库及操作权限做更细致的控制。 3:tables_priv和columns_priv表:前者对表设置操作权限,
2015-05-30 14:51:53
517
转载 重新教自己学算法之单词统计(状态机)(十)
如何统计一段由字符和空格组成的字符串中有多少个单词? 由这个问题可以简单了解一下 状态机 题目分析: 对一个字符串处理,有下面几种情形:初始状态,字符状态,空格状态,结束状态。这几种状态应该如下所示迁移: 初始状态: 如果输入符号是空格,那么进入空格状态;如果是字符,那么就进入字符状态,同时单词个数+1;如果是结束状态,那么直接返回; 空格状态:如果输入符号
2015-05-24 22:28:37
402
原创 重新教自己学算法之单向链表(九)
#include <iostream>#include <cstdlib>#include <cassert>#include <cstring>using namespace std;#define STATUS int#define TRUE 1#define FALSE 0typedef struct _LINK_NODE{ int data; struct _L
2015-05-24 22:21:32
388
原创 重新教自己学算法之线性堆栈(八)
#include <iostream>#include <cstdlib>#include <cassert>#include <cstring>using namespace std;#define STATUS int#define TRUE 1#define FALSE 0typedef struct _STACK_NODE{ int* pData; int le
2015-05-24 22:19:21
375
转载 理解一般指针和指向指针的指针
在说指向指针的指针之前,不得不说指向变量的指针。先看如下示例:指向整型指针先看如下示例: #include <iostream> using namespace std; int main() { int a = 5; int * p = &a; cout << "a = " << a << endl << "&a = " << &a
2015-05-24 11:38:18
344
原创 重新教自己学算法之线性队列(七)
线性结构实际上指的就是连续内存的意思。 队列的性质很简单: (1)队列有头部和尾部 (2)队列从尾部压入数据 (3)队列从头部弹出数据 那么连续内存下的队列是怎么实现的呢?#include <iostream>#include <cstdlib>#include <cassert>#include <cstring>using namespace s
2015-05-23 21:12:18
378
原创 关于c/c++struct,指针,数组,内存地址的点滴理解
1:所谓变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都会在编译时被转成内存地址。机器是不知道我们取的名字的,只知道地址。 2:关于结构体:#include <iostream>using namespace std;struct test{ int i; char* p; short a;};int main(int argc, char
2015-05-23 17:42:58
1234
原创 重新教自己学算法之递归排序——堆排序(六)
堆排序,快速排序,归并排序都是递归排序,且时间都为O(Nlog(n)). 先讲解一下什么是数据结构中的二叉堆。 定义: 二叉堆是完全二叉树或者近似完全二叉树,满足两个特性: 1:父节点的键值总是大于或等于(小于或等于)任何一个子节点的键值。 2:每个节点的左子树和右子树都是一个二叉堆。 当父节点的键值总是大于等于任何一个子节点的键值时为最大堆。下面给出堆排序的代码:void _merge
2015-05-23 11:16:34
544
原创 重新教自己学算法之递归排序——合并排序(五)
前一篇中的快速排序和这次的合并排序都是经典的算法之一,区别在于: 快速排序:先分类在迭代 合并排序:先迭代在合并void _merge_array(int array[], int first, int middle,int last, int temp[]){ int i = first, j = middle + 1; //将数组a分成两部分 int m = middl
2015-05-22 19:45:26
1080
最基本的图行界面开发
2014-03-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人