Java与C++相异的地方

继承标识:Java使用extends/implement,C++使用:

super:调用父类的某些东西

instanceof:RTTI机制(A is instanceif B)

final:类似于C++中的const,static

区别001:extends and implement

implement-->描述的是Class与Interface的关系

extends-->描述的是Class与Class的关系

区别002:abstract class and interface

(1)抽象类可以为部分方法提供实现,避免了在子类中重复实现这些方法,提高了代码的可重用性,这是抽象类的优势;而接口中只能包含抽象方法,不能包含任何实现。

(2)一个类只能继承一个直接的父类(可能是抽象类),但一个类可以实现多个接口,这个就是接口的优势。

Java与C++相异的地方

时间: 2024-10-13 13:12:45

Java与C++相异的地方的相关文章

Java中书写要注意的地方

Java的命名规则:以字母.下划线(_)或$符号开头,其后跟任意数目的字母.数字.下划线和$符号.  注意: 数字不能作为标识符的开头: 除了下划线与$符号以外,其余的符号不能使用: 不能使用关键字作标识符: Java语言区分大小写(大小写敏感). Java语言的书写约定: 类:每个单词的首字母均大写,如MyClassProgram: 方法.变量:第一个单词的首字母小写,其后单词首字母均大写myMethod(): 常量:均以大写字母表示,多个单词用下划线分开. 在Java中,只有对SQL语句的大

在java中使用正则表达式注意的地方

1. 对^与$的理解 通常我们会通过类似Matcher matcher = Pattern.compile(regex).matcher(string);的代码去拿到一个Matcher对象.这种情况下regex中的^与$匹配的是整个待匹配串string的开头与结尾.而要使^与$去匹配每一行的开始与结尾,则要使用Pattern.MULTILINE.即:Matcher matcher = Pattern.compile(regex, Pattern.MULTILINE).matcher(string

POJ 3764 The xor-longest Path ( 字典树应用—— 求连续段相异或最大最小的线性算法)(好题)

题意:已知:给出n个结点的树,定义:两结点间的权值为两点之间所有边相异或的值.求:树中的某两点间的最大权值. 思路:先说简单一点的题:有道CowXor,是一串线性序列,求某连续段异或的最大值,这题的思路是先求前i项序列相异或的值Si,所以x到y的连续异或就是Sx^Sy ,因为a^b = (a ^ c) ^ (b ^ c). 这题同样是这个思路把线性拓展到树上,先求任何点到某一定点的连续异或值,比如选根结点0,所以这时候有两种情况,1.x,y的路径通过了根结点,显然正确.2.x,y的路径不通过根结

常见的相似或相异程度计算方法

如何衡量数据点之间的相似或相异程度是聚类算法的基础问题,会直接影响聚类分析的效果,最直观的方法是使用距离函数或者相似性函数. 常见的相似或相异程度计算方法. 1.计算公式 1.Minkowski distance 很多距离计算方法都可以归结为基于向量p范数的距离,即Minkowski distance. dij=(sumsh=1|xihxjh|p)1/pdij=(sumh=1s|xihxjh|p)1/p 2.Euclidean distance 参数p = 2,Minkowski distanc

Java两整数相除保留两位小数

在Java中 两个整数相除 会做取整运算,此时如果希望得到运算结果为浮点数 则必须将两整数其一或两者都强制转为为浮点数 例如: int a = 9; int b = 2; System.out.println((float)a/b); System.out.println(a/(float)b); System.out.println((float)a/(float)b); 保留两位小数 DecimalFormat df = new DecimalFormat("0.00"); Str

java 实现 一个账号只能在一个地方登陆,其他地方被下线

其实方法有很多的,我这献丑了. 使用理解java 四大作用域. 思路:理解java 四大作用域的关键. 第一个地方登陆: 1.得到请求的SessionId 和 登陆的 用户名 2.把SessionId 存到application里,用户名存到当前session里 ActionContext ac = ActionContext.getContext(); Map<String, Object> applicationMap=ac.getApplication(); Map<String,

java的移位和异或运算

Java移位运算种类 基础:我们知道在Java中int类型占32位,可以表示一个正数,也可以表示一个负数.正数换算成二进制后的最高位为0,负数的二进制最高为为1 例子: -5换算成二进制后为:1111 1111 1111 1111 1111 1111 1111 1011 负数的二进制如何换算过来的? 负数转换为二进制,就是将其相反数(正数)的补码的每一位变反(1变0,0变1)最后将变完了的数值加1,就完成了负数的补码运算.这样就变成了二进制. 5换算成二进制后为:0000 0000 0000 0

Java存储数据的几个地方

1. 寄存器 这是最快的存储区,位于处理器内部,不能直接控制.    2. 堆栈 位于RAM中,堆栈指针向下移则分配新的内存:堆栈指针向上移则释放内存.存储速度仅次于存储器. 创建程序时Java系统必须知道存储在堆栈内的所有项的生命周期,以便上下移动堆栈指针.通常用于存放对象引用,对象并不存放在堆栈中. *特例:Java基本类型,不用new来创建变量,而是创建一个并非是引用的"自动"变量.这个变量直接存储"值",并置于堆栈中.基本类型存储了实际的值,而并非对象的引用

Java随笔:使用异或操作交换变量值的风险

在面试中,经常会问到“如何不用中间变量交换两个变量值”. 看看下面这个代码输出是什么: int x = 1984; int y = 2001; x^=y^=x^=y; System.out.println("x="+x+";y="+y); 看上去应该很完美的:x=2001;y=1984 实际输出是:x=0;y=1984 问题出在哪里?是的,就是JVM的编译器. 看看实际的汇编: Code: 0: sipush 1984 3: istore_1 4: sipush 2