`
923723914
  • 浏览: 636797 次
文章分类
社区版块
存档分类
最新评论

C++ Java要点记录

阅读更多
简介

依然记得当初学习C++的理想----开发游戏外挂,记得在大学开发的第一款游戏外挂是连连看,读取地址数据,然后算法匹配,模拟单击事件,当时被许多同学羡慕嫉妒。

JAVA开发是2012年3月份开始开发Android后专注的,Java的学习是在大学完成的,当时JAVA考试95分满以为Java没啥难的,后来从事android开发发现自己对java的理解不深。


内容

Java要点

要点 定义 描述
基本数据类型 1、byte(8)
2、shot (16)
3、int(32)
4、long(64)
5、float(32)
6、double(62)
7、char(16)
8、boolean(1)
持有对象 Collection(接口)
->List(子接口 先后顺序 可重复)
->LinkedList (链表 不同步 线程不安全)
->ArrayList (数组 不同步 线程不安全)
->Vector (数组 同步 线程安全)
->Stack
->Set (子接口 只接收一次 内部排序)
->HashSet
->LinkedHashSet
->TreeSet

Map(接口 键值)
->Hashtable (同步 安全)
->LinkedHashMap (不同步 不安全)
->WeakHashMap
->TreeMap
->IdentifyHashMap
Collection 是对象集合, Collection 有两个子接口 List 和 Set
List 可以通过下标 (1,2..) 来取得值,值可以重复
而 Set 只能通过游标来取值,并且值是不能重复的
ArrayList , Vector , LinkedList 是 List 的实现类
ArrayList 是线程不安全的, Vector 是线程安全的,这两个类底层都是由数组实现的
LinkedList 是线程不安全的,底层是由链表实现的
Map 是键值对集合
HashTable 和 HashMap 是 Map 的实现类
HashTable 是线程安全的,不能存储 null 值
HashMap 不是线程安全的,可以存储 null 值
泛型 参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。 对应C++的是模块
I/O系统 Java的I/O就是Java的输入与输出操作 抽象类InputStream和OutputStream是所有字节流的基类,它们分别提供了输入和输出处理的基本接口,并且分别实现了其中的某些方法.由于InputStream和OutputStream都是抽象类,所以不能直接创建它们的对象.InputStream类中所提供的方法主要有:从流中读取数据,关闭流并且释放与该流相关的系统资源和使用输入流中的标记等.OutputStream类中所提供的方法主要有:输出数据,更新输出流和关闭流等.
涉及的类:
字节输入流包括FileInputStream、BufferedInputStream和DateInputStream,
与之对应的字节输出流包括FileOutputStream、BufferedOutputStream和DateOutputStream。
垃圾回收器 Java虚拟机(JVM)的三个重要模块(另外两个是解释器和多线程机制)之一。 通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。
初始化顺序 1、静态成员
2、静态函数
3、静态区
4、其它
引用 基本的变量类型只有一块存储空间(分配在stack中), 而引用类型有两块存储空间(一块在stack中,一块在heap中), 方法形参的值传递(引用)是指形参和传进来的参数指向同一个值的内存(heap)中; java是传值还是传引用?
基本类型是传值
并发 多进程编程 Java提供底层的协调机制,以控制对共享资源的访问。这里的协调,包括竞争,合作和通信。
竞争:synchronized、lock
合作:notifyAll、interrupt、signalAll
通信:PipedReader / PipedWriter


C++要点

要点 定义 描述
typedef 和#define typedef是用来声明类型别名的,在实际编写代码过程使用typedef往往是为了增加代码的可读性。

#define是一个宏定义命令,用来定义一个常量(包括无参常量和有参常量),它本身并不在编译过程中执行,而是在预处理阶段就已经完成了,因此不作任何正确性检查,只进行不关含义的字符串替换。
指针/智能指针 指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据。 智能指针实际上是一个栈对象,并非指针类型,在栈对象生命期即将结束时,智能指针通过析构函数释放有它管理的堆内存。
std::auto_ptr、boost::scoped_ptr、boost::shared_ptr、boost::scoped_array、boost::shared_array、boost::weak_ptr、boost:: intrusive_ptr。
模板与泛型编 泛型编程就是以独立于任何特定类型的方式编写代码,而模板是泛型编程的基础。
STL 容器 标准STL序列容器:vector、string、deque和list。
标准STL关联容器:set、multiset、map和multimap。
非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一“重型”string。
非标准的关联容器hash_set、hase_multiset、hash_map和hash_multimap。
线程池 线程池的作用正是有效的降低频繁创建销毁线程所带来的额外开销。


C++和Java的区别

要点 定义 描述
Java无指针
Java不支持头文件、Java不支持宏定义
java是运行在JVM中的,并且是编译成JVM可识别加载的.class,并不是完全编译成计算机直接可执行的程序,C++ 程序直接可在计算机中执行。
在C++和Java中都存在类引用,C++中是要明确指出的,显性的;而Java中是隐形的。
Java对每种数据类型都分配固定长度.
类型转换不同 在C和C++中,可通过指针进行任意的类型转换,常常带来不安全性,而在Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换.
结构和联合的处理 在C和C++中,结构和联合的所有成员均为公有,这就带来了安全性问题,而在Java中根本就不包含结构和联合,所有的内容都封装在类里面
JAVA的应用在高层,C++在中间件和底层
垃圾回收,c++用析构函数回收垃圾,java自动回收
Java的对象都从堆中分配,C++的自动变量都是从栈里面分配的



总结

重新C++和Java复习要点,对java、C++的认识更加深刻了。

分享到:
评论

相关推荐

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

     Ivor Horton是撰著Java、C和C++编程语言图书的杰出作家之一。大家一致认为,他的著作独具风格,无论是编程新手,还是经验丰富的编程人员,都很容易理解其内容。在个人实践中,Ivor Horton也是一名系统顾问。他从事...

    Visual C++ 2005入门经典--源代码及课后练习答案

    Ivor Horton还著有Beginning Visual C++ 6、Beginning C Programming和Beginning Java 2等多部入门级好书。 目录 封面 -18 前言 -14 目录 -9 第1章 使用Visual C++ 2005编程 1 1.1 .NET Framework 1 1.2 CLR 2...

    计算机类书籍:操作系统、计算机网络、计算机组成原理大数据、人工智能、面试题

    计算机类书籍:操作系统、计算机网络、计算机组成原理、汇编语言、C语言、C++、Java、Python、Go、前端、算法与数据结构、大数据、人工智能、面试题 实验报告:通过实际操作与数据记录,让您深入理解计算机内部的...

    blockchaingold

    该文件夹包含一组结构化的智能合约和应用程序客户端(即,使用多种语言,例如,Node.js,Java,Go等),涉及与商业票据(一种金融“工具”(在Global Finance中)有关)。 当前,Node.js样本合同尤其具有进一步的...

    我的编程感悟(中文PDF)(共37M二分卷)分卷二

    本书忠实地记录了作者十余年来对游戏编程的所思、所感、所悟。全书按照作者本人学习和实践的过程,带着读者从基础的计算机知识到高级的编程技术,从非常专业的汇编优化到非常实际的项目管理进行了一次游戏开发的全景...

    我的编程感悟(中文PDF)(共37M二分卷)分卷一

    本书忠实地记录了作者十余年来对游戏编程的所思、所感、所悟。全书按照作者本人学习和实践的过程,带着读者从基础的计算机知识到高级的编程技术,从非常专业的汇编优化到非常实际的项目管理进行了一次游戏开发的全景...

    二十三种设计模式【PDF版】

    于原著都是以C++为例, 以Java为例的设计模式基本又都以图形应用为例,而我们更关心Java在中间件等服务器方面的应用,因此, 本站所有实例都是非图形应用,并且顺带剖析 Jive论坛系统.同时为降低理解难度,尽量避免使用 ...

    C语言在本科计算机相关专业的课程定位及学习体会-.doc

    通过学习C语言,学生们不仅能够掌握一种实用 的计算机编程语言,锻炼抽象思维能力,掌握编程的技巧,同时也为今后学习C++打下了良 好的基础。C语言作为一门计算机高级语言,对于初学者普遍觉得难学、学不懂,笔者就 如何...

    Tcl_TK编程权威指南pdf

    这些命令与你的应用程序所提供的C或C++过程关联。结果应用程序就分割成一组用编译语言编写的原语,并输出成为相应的Tcl命令。使用Tcl脚本程序可以将这些原语组装成完整的应用程序。脚本语言层可以存取与shell类似的...

    C语言入门经典(第4版)--源代码及课后练习答案

    IvorHorton还著有关于C、C++和Java的多部入门级好书,如《C语言入门经典(第4版)》和《C++入门经典(第3版)》。 译者  杨浩,知名译者,大学讲师,从事机械和计算机方面的教学和研究多年,发表论文数篇,参编和翻译的...

    IIS6.0 IIS,互联网信息服务

    Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和...

    游戏之旅--我的编程感悟【有目录】

    本版本与网上其他资源不同之处在于,此版本可进行编辑,搜索,已进行内容识别扫描。可全选,可编辑,可剪切文字。 部分目录如下: 第1 章计算机,游戏,我_ 我,云风,从二十年前的计 算机游戏萌芽阶段一路走来。...

Global site tag (gtag.js) - Google Analytics