个人理财小助手 —— 设计思路、功能说明

个人理财小助手 —— 详细说明(初步) 外加邀请函!详细功能(初步)经过了几天断续的思考,终于有了一个比较完整的思路,先记录下来以免忘记。同时也请大家多多帮忙,看看思路是否可行。 一、收入1. 工资收入,这个就不用说了吧。2. 初始资金。使用本软件之前手里还剩余的资金,包括钱包里的、银行里的(活期、定期等)。3. 利息收入,定期、活期的利息。4. 储蓄,定期转活期等。5. 借入。别人借给我钱。6. 还入。别人还钱给我。7. 出售物品。出售以前买的物品获得的钱。 l 1、2、3是真正的收入。l 4、6本来就是自己的钱,5是别人的钱。这些不属于真正的收入。 为什么要把4、5、6都算作“收入”呢

个人理财小助手 —— 数据库(二)

个人理财小助手 —— 数据库(二)感谢大家的支持和关注,好多朋友都提出了自己的意见,先谢过了。三天过去了,做一个小结吧。 1、 为什么用B/S VS2003 + SQL 2000?原因很简单——熟悉。这种组合用了三年半了,用熟悉的方式开发,可以用最短的时间来验证自己的想法是否正确,也可以很快的到大家的反馈,大家的认同度。另外B/S的程序可以放在一台服务器上,然后大家就都可以来测试了。 2、 已经有开源的、Excel、Access的,网上也有现成的,为什么还要自己做?更简单了——用自己东东的习惯。可以按照自己的思维、要求来做,这是程序员的一种乐趣吧。另外网上的确实功能不是太强,当然我也没看几个

个人理财小助手 —— 数据库(一)

个人理财小助手 —— 数据库(一)今天时间比较紧,数据库只设计了一部分,还是没有考虑到细节,现简要说一下吧。四个部分:管理员,基础设置,资金,物品。目前只设计了9个表,由于还没有考虑详细,先不提供下载了,明天再整理整理,然后在提供下载。先贴三个表试一试。明天还要在详细设计,要考虑到很多关联的地方。c010Money_In收入表    mc011MoneyInID自动编号int4n1主键mc012UserID用户IDint4n1mc013Title标题nvarchar20_mc014MoneyIn收入金额decimal9_二选一。mc015KindInID收入类型int4n1二选¸

JVM笔记【1】-- 运行时数据区

文章目录(一)java内存区域管理1.5.1 运行时常量池1.1 程序计数器1.2 虚拟机栈1.3 本地方法栈1.4 java堆1.5 方法区(二)直接内存(一)java内存区域管理C/C++每一个new操作都需要自己去delete/free,而java里面有虚拟机自动管理内存,不容易出现内存泄漏或者溢出的问题,但是不容易出现不代表不出现,了解虚拟机怎么使用和管理内存是十分重要的是,对程序优化或者问题排查有帮助。运行时区域主要分为:线程私有:程序计数器:Program Count Register,线程私有,没有垃圾回收虚拟机栈:VM Stack,线程私有,没有垃圾回收本地方法栈:Native

从JVM底层原理分析数值交换那些事

基础数据类型交换这个话题,需要从最最基础的一道题目说起,看题目:以下代码a和b的值会交换么: public static void main(String[] args) { int a = 1, b = 2; swapInt(a, b); System.out.println("a=" + a + " , b=" + b); } private static void swapInt(int a, int b) { int temp = a; a = b; b = temp; }结果估计大家都知道,a和b并没有交换:integerA=1 , integerB=2但是原因呢?先看这张图

JVM笔记 -- JVM的发展以及基于栈的指令集架构

2011年,JDK7发布,1.7u4中,开始启用新的垃圾回收器G1(但是不是默认)。2017年,发布JDK9,G1成为默认GC,代替CMS。(一般公司使用jdk8的时候,会通过参数,指定GC为G1)2018年,发布JDK11,带来了革命性ZGC,性能比较强。虚拟机介绍虚拟机,就是虚拟的计算机,可以执行一系列虚拟计算机指令,大体上可以分为系统虚拟机和程序虚拟机。它们运行时,都会受到虚拟机提供的资源的限制。系统虚拟机:仿真模拟系统的,比如Visual Box,VMware。程序虚拟机:为执行单个计算机程序设计的,比如Java虚拟机。JAVA虚拟机Java虚拟机是一台执行字节码的虚拟机计算机

JVM笔记 -- JVM的生命周期介绍

> Github仓库地址:https://github.com/Damaer/JvmNote 文档地址:https://damaer.github.io/JvmNote/**JVM生命周期** - 启动 - 执行 - 退出 ## 启动 Java虚拟机的启动时通过引导加载器(`bootstrap class loader`)创建一个初始类(`initial class`)来完成的,这个类是由Java虚拟机的具体实现指定的。自定义的类是由系统类加载器加载的。自定义类的顶级父类都是`Object`,`Object`作为核心`api`中的类,是需要被引导加载器(`bootstrap class

JVM笔记--如果你写JVM,最需要考虑的重要结构是什么?

开局一张图,前面已经从每一部分解析过JVM的内存结构了,现在按照顺序来分析:整体上来看:类文件从类加载子系统,加载完成之后,主要存放在方法区(JRockit和H9没有方法区,这里指的是HotSpot)。运行时的数据主要是存放在运行时数据区,代码的解释编译优化以及垃圾收集,都是在执行引擎中。本地方法是指Native方法,也就是C/C++编写的方法。类加载子系统类文件首先需要经过类加载子系统,进行加载,进类信息等加载到运行时数据区。在类加载子系统中有以下三个阶段操作:加载链接初始化其中加载的时候,有三种类加载器:Bootstrap ClassLoader:引导类加载器

JVM笔记 -- 来,教你类加载子系统

类加载子系统类文件首先需要经过类加载子系统,进行加载,进类信息等加载到运行时数据区,生成Klass的实例。在类加载子系统中有以下3个阶段操作(广义上的加载):加载阶段Bootstrap ClassLoader:引导类加载器,主要加载JDK里面的核心类Extension ClassLoader:拓展类加载器Application ClassLoader:应用加载器链接阶段验证链接解析初始化阶段 如果加载的时候失败了,则不会执行后面的链接等操作。类加载子系统的作用:类加载器子系统可以从本地文件或者网络中加载Class文件,Class文件开头有特定标识“CAFEBABY”(魔数)

JVM笔记 -- JVM经历了什么?

## Sun Classic VM - 世界上第一款商用 `Java` 虚拟机,`JDK1.4` 已经淘汰。 - 内部只有解释器,可以自己外挂`JIT`编译器,但是二者只能使用其一,不能配合工作。 - `hotspot` 内置了该虚拟机。解释器,需要逐行解释执行,效率低下。譬如:如果循环两千次,循环体很大,每次执行都需要解释执行。`JIT` 编译器,除了可以直接全部即时编译,还可以统计出那些代码执行频率比较高,这部分代码就是热点代码,`JIT` 编译器会将热点代码,提前编译成为机器指令,放在方法区缓存起来,下次执行到的时候,不需要解释执行,而是直接运行机器指令。(**此时的 Classic