前言
声明 : 该篇博客大多内容来自 y总的 讲义
写这篇博客为了更好的从 C + + C++ C++转向为 J a v a Java Java
首先对于刚从 C + + C++ C++转到 J a v a Java Java的选手
我们需要知道的是需要提交的代码格式一般有两类
- 类
C++
import java.util.* //这里相当于头文件 public class Main {//这里是是大的总体类 public static void main(String[] args) {//这里是主方法 } }
Leetcode
类型class Solution { public void deleteNode(ListNode node) {//这种类型一般是编写特定的函数,不处理输入输出 } }
1.变量、运算符、输入与输出
1.1变量
.变量的类型
类型 | 字节 | 距离 |
---|---|---|
byte | 1 | 123 |
short | 2 | 12345 |
int | 4 | 123456789 |
long | 8 | 1234567891011L(定义+L) |
float | 4 | 1.2F(定义+F) |
double | 8 | 1.2 |
boolean | 1 | true,false |
char | 2 | ‘A’ |
这里的为什么没有提及String
,因为在Java
中,String
被封装成了一个类
除了定义的时候,需要注意Long/float
之外其他与C++
无异
1.2 运算符
运算符这里基本都和C++
吻合
只是C++
可以省略的地方,Java
一般不能省略,还有就是1
不能代替为true
下面是几个错误示范 :
if(n&1)//×
if((n&1) !=0) //√
if(n%2)//×
while(1)//×
....
当然这种错误IDEA
都会有亲切的提示
1.3 输入输出
.普通的输入输出
即使用Scanner
//输入
Scanner sc = new Scanner(System.in);
String str = sc.next(); // 读入下一个字符串
int x = sc.nextInt(); // 读入下一个整数
float y = sc.nextFloat(); // 读入下一个单精度浮点数
double z = sc.nextDouble(); // 读入下一个双精度浮点数
String line = sc.nextLine(); // 读入下一行
//输出
System.out.println(123); // 输出整数 + 换行
System.out.println("Hello World"); // 输出字符串 + 换行
System.out.print(123); // 输出整数
System.out.print("yxc\n"); // 输出字符串
System.out.printf("%04d %.2f\n", 4, 123.456D); // 格式化输出,float与double都用%f输出
.优化的输入输出
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
System.out.println(str);
}
}
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws Exception {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("Hello World\n");
bw.flush(); // 需要手动刷新缓冲区
}
}
在 1 0 7 10^7 107的输入输出范围的时候, S c a n n e r Scanner Scanner的效率会比优化后的低个 10 ∣ 20 10|20 10∣20倍
[关于 使用BufferReader 的细节]
[Java在OJ运行超时的问题]
2.判断语句
判断语句和 C + + C++ C++类似,这里不做过多介绍
665.倍数
[传送门]
题意 :
给定两个没有大小关系的数 A,B.询问其中一个是否是另一个的倍数
思路 :
因为java中,没有内置的
s
a
w
p
sawp
sawp函数
因此我们可以直接使用
if(a%b == 0|| b%a == 0)
这种语句进行判断