有C++基础,Java零基础。想学Java。目前我采用的方法是:
- 先看一些Java入门视频(B站、腾讯课堂到处都有)快速了解Java这门语言,包括IDE怎么使用、基本输入输出、基本数据类型等,发现好些基础知识都差不多,毕竟都是面向对象的语言。
- 然后力扣做题,先用C++写一遍,做题思路保持不变,将C++里用到的API替换成Java的(比如你这道题是用C++的unordered_map写的,你用Java写的时候换成对应的HashMap写一遍,遇到不知道的就去百度一下),用Java多刷几道题就大概能记住那些类的使用方法了,这时候基本上就会用Java写代码了。
- 会用Java写代码算是刚刚入门了,如果想要代码写得好,必须要掌握语言的特性,包括Java各种类的底层原理什么的,这些可以买本书看。推荐书籍《Java核心技术》。
- 要想深入学习Java,看书肯定不够啊,去GitHub上找点项目做,然后在工作中实践等等
由于博主初学Java,下面的内容如有错误的地方,还望各位Java大佬指出来。
1、IDE选择
- 免费:Eclipse、IntelliJ Idea社区版
- 收费:IntelliJ Idea旗舰版
- 附上IntelliJ Idea官网下载链接
2、JVM、JRE与JDK
- JVM(Java Virtual Machine),Java虚拟机,JVM 是 Java 能够跨平台的核心。
- JRE(Java Runtime Envirnment),Java运行环境,JRE相对于 JVM,多了 Java 基础类库,你写好的Java程序需要有JRE才能运行。
- JDK(Java Development Kit) ,Java 开发工具包,包含了Java运行环境(JRE)、Java工具和Java基础的类库。你写的Java程序如果要调试,需要有JDK,由于JDK包含了JRE,JRE包含了JVM,因此你的IDE只要装了JDK就不需要额外装JRE和JVM了。
3、Java和C++相同的一些基础知识
-
基本数据类型:char、int、long、double……
布尔类型不同(Java boolean,C++ bool) -
运算符:+、-、*、\、%、++、–、=、&&、||、!、<、>、==……
-
判断语句:if、switch
-
循环语句:普通for语句、while语句、do-while语句
-
continue、break、 关系表达式?表达式1:表达式2 用法相同。
-
类同样有封装、继承、多态等概念;有private、pubic、this、static 等关键字;有构造函数,用法类似。
-
方法(函数)同样有定义、调用、重载等概念。
4、内存模型
java | C++ |
---|---|
5、数组
6、类的定义与使用
类的内存模型
仍以前面的代码为例,学生类Student实例化了一个对象stu1。
Java
在main()方法中使用类Student,先实例化一个对象stu1,对象stu1占用堆内存,stu1的内存中又存放着类Student的各个方法的地址。
C++
若类有虚函数的情况,请看图解C++多态,虚函数、虚函数表、虚指针、重写与覆盖
接下来是常用API的对比
1、输入 ----------------------------------------------------------------
Java------Scanner
// 导包
import java.util.Scanner;
// System.in 代表从键盘进行输入
Scanner sc = new Scanner(System.in);
// 获取键盘上输入的int型数据
int number = sc.nextInt();
// 输出看看
System.out.println(number);
// 获取键盘上输入的字符串
String str=sc.n