一、关于JAVA
Java和C和C++
- c是面向过程的语言。c++和Java都是面向对象的。在c中没有类或者对象的概念。
- java运行在虚拟机上,号称与平台无关。也就是你开发的java程序无论是unix,linux还是windows都可以正常运行。但是实际上这是一个良好的愿望,实际跨平台时还会有各种各样的问题。c和c++都是直接编译成可执行文件,是否能跨平台主要看你用到的编译器特性是否有多平台支持。
- 因为c和c是直接编译成可执行文件,所以运行效率要比java高。至于c和c哪个更快,两种语言的拥趸已经吵了很多年。
- java因为是运行在虚拟机上,不需要考虑内存管理和垃圾回收机制。也是就你可以声明一个对象而不用考虑释放他,虚拟机帮你做这事情。而c和c语言本身没有多少内存管理的概念,写c和c程序如果用到指针就一定要考虑内存申请和释放。内存泄漏是c和c++最头疼的问题。
- 代码重用:java中有一个根类object,所有的类都是其子类,通过这种方式将容器和算法分离,实现一种操作作用于多种对象,提高代码重用。c中没有总根对象,但是c提供了另一个更强大的功能“模板”,同样高效地实现了一种操作作用于多种对象,提供了高效的代码重用方法。
- 数据结构:java内建了丰富的数据结构:列表,集合等等(很久没用java了,有些记不太清)。而c++则用“模板”同样提供了各种数据结构(容器)。
- c语言在一些比较低层,和硬件打交道的地方用得比较多。另外很多开源软件由于unix/linux开发习惯也大多采用c来开发。Java是现在最流行的开发语言,c++比起java稍稍不那么流行一些,但是功能很强大。如能深入掌握,可以写出兼顾效率和美观的优秀代码。
多语言简略对比
Ideas are cheap, show me the code 学到了,学到了~
代码块:python通过缩进来确定代码块
复数:java、python有,C、Cplusplus没有
python:相对于java,python就是java的压缩版本
包、接口、API:我觉得java也好,python也好,正是因为这些模块组件化,才使得这些语言好很好的的健壮性
二、数据类型;运算符;表达式
基本数据类型
常量、标识符和变量、数据类型
JAVA中除了下面8种数据类型其他的都是以对象(或者说类的实例)存在的
- string:要熟悉常用的函数
- length():字符串的长度
- charAt(i):取字符串的第i个元素
- boolean(java中需要全部写出来)
true
false
- 下面6中数值型数据类型
运算符和表达式
- 赋值语句,赋值表达式
- 输入输出:输入输出,要有记得清除的空间,close的意识! ```java // 方式一 import java.util.Scanner;
Scanner input = new Scanner(System.in); double radius = input.nextDouble();
// 方式二 : 好处就是避免项目工程中类当中重名的情况 java.util.Scanner input = new java.util.Scanner(System.in); double radius = input.nextDouble();
- 数值运算符
> +、-、*、/、%
- 逻辑运算符<br />`&&` `||` `!` `^`(异或:相同才为假)<br />`&` `|` `^` 位运算符:会先化成二进制对二进制码进行分析
- 运算符的优先级
![](https://cdn.nlark.com/yuque/0/2020/png/1484158/1598686523840-d1395ecf-7d3c-416b-8ce8-5d11a0e3f313.png#align=left&display=inline&height=302&margin=%5Bobject%20Object%5D&originHeight=552&originWidth=543&size=0&status=done&style=none&width=297)
<a name="f387966e"></a>
## 三、程序三大基本结构
<a name="4ebeccc3"></a>
### 顺序结构
<a name="f5dfe658"></a>
### 选择结构
- if(){} else{}
- switch
```java
public class Test {
public static void main(String args[]){
//char grade = args[0].charAt(0);
char grade = 'C';
switch(grade)
{
case 'A' :
System.out.println("优秀");
break;
case 'B' :
case 'C' :
System.out.println("良好");
break;
case 'D' :
System.out.println("及格");
break;
case 'F' :
System.out.println("你需要再努力努力");
break;
default :
System.out.println("未知等级");
}
System.out.println("你的等级是 " + grade);
}
}
- 条件表达式
System.out.println((num % 2 == 0) ? "num is even" : "num is odd");
循环结构
- while () {}
- do {} while ();
- for () {}
- 关于break(跳出该级别的for循环)和continue(后面的语句不读)
- 关于return
- 关于增强的for循环,在模板章节,配合vector使用,并发控制,高效使用
缺点:看不见索引