一、关于JAVA

Java和C和C++

  1. c是面向过程的语言。c++和Java都是面向对象的。在c中没有类或者对象的概念。
  2. java运行在虚拟机上,号称与平台无关。也就是你开发的java程序无论是unix,linux还是windows都可以正常运行。但是实际上这是一个良好的愿望,实际跨平台时还会有各种各样的问题。c和c++都是直接编译成可执行文件,是否能跨平台主要看你用到的编译器特性是否有多平台支持。
  3. 因为c和c是直接编译成可执行文件,所以运行效率要比java高。至于c和c哪个更快,两种语言的拥趸已经吵了很多年。
  4. java因为是运行在虚拟机上,不需要考虑内存管理和垃圾回收机制。也是就你可以声明一个对象而不用考虑释放他,虚拟机帮你做这事情。而c和c语言本身没有多少内存管理的概念,写c和c程序如果用到指针就一定要考虑内存申请和释放。内存泄漏是c和c++最头疼的问题。
  5. 代码重用:java中有一个根类object,所有的类都是其子类,通过这种方式将容器和算法分离,实现一种操作作用于多种对象,提高代码重用。c中没有总根对象,但是c提供了另一个更强大的功能“模板”,同样高效地实现了一种操作作用于多种对象,提供了高效的代码重用方法。
  6. 数据结构:java内建了丰富的数据结构:列表,集合等等(很久没用java了,有些记不太清)。而c++则用“模板”同样提供了各种数据结构(容器)。
  7. c语言在一些比较低层,和硬件打交道的地方用得比较多。另外很多开源软件由于unix/linux开发习惯也大多采用c来开发。Java是现在最流行的开发语言,c++比起java稍稍不那么流行一些,但是功能很强大。如能深入掌握,可以写出兼顾效率和美观的优秀代码。

多语言简略对比

Ideas are cheap, show me the code 学到了,学到了~

  1. 代码块:python通过缩进来确定代码块
  2. 复数:javapython有,CCplusplus没有
  3. python:相对于javapython就是java的压缩版本
  4. 包、接口、API:我觉得java也好,python也好,正是因为这些模块组件化,才使得这些语言好很好的的健壮性

二、数据类型;运算符;表达式

基本数据类型

常量、标识符和变量、数据类型

JAVA中除了下面8种数据类型其他的都是以对象(或者说类的实例)存在的

  • string:要熟悉常用的函数
    • length():字符串的长度
    • charAt(i):取字符串的第i个元素
  • boolean(java中需要全部写出来)
    • true
    • false
  • 下面6中数值型数据类型

基础知识 - 图1

运算符和表达式

  • 赋值语句,赋值表达式
  • 输入输出:输入输出,要有记得清除的空间,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();

  1. - 数值运算符
  2. > +、-、*、/、%
  3. - 逻辑运算符<br />`&&` `||` `!` `^`(异或:相同才为假)<br />`&` `|` `^` 位运算符:会先化成二进制对二进制码进行分析
  4. - 运算符的优先级
  5. ![](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)
  6. <a name="f387966e"></a>
  7. ## 三、程序三大基本结构
  8. <a name="4ebeccc3"></a>
  9. ### 顺序结构
  10. <a name="f5dfe658"></a>
  11. ### 选择结构
  12. - if(){} else{}
  13. - switch
  14. ```java
  15. public class Test {
  16. public static void main(String args[]){
  17. //char grade = args[0].charAt(0);
  18. char grade = 'C';
  19. switch(grade)
  20. {
  21. case 'A' :
  22. System.out.println("优秀");
  23. break;
  24. case 'B' :
  25. case 'C' :
  26. System.out.println("良好");
  27. break;
  28. case 'D' :
  29. System.out.println("及格");
  30. break;
  31. case 'F' :
  32. System.out.println("你需要再努力努力");
  33. break;
  34. default :
  35. System.out.println("未知等级");
  36. }
  37. System.out.println("你的等级是 " + grade);
  38. }
  39. }
  • 条件表达式
    1. System.out.println((num % 2 == 0) ? "num is even" : "num is odd");

循环结构

  • while () {}
  • do {} while ();
  • for () {}
  • 关于break(跳出该级别的for循环)和continue(后面的语句不读)
  • 关于return

基础知识 - 图2

  • 关于增强的for循环,在模板章节,配合vector使用,并发控制,高效使用

基础知识 - 图3
缺点:看不见索引

四、方法