首先我们写完了HelloWorld就学会了java的一种输出

System.out.println()

用起来就像是被强化过的C++的puts函数

或者就是自带endl的cout函数,中间的" << " 直接用“ +”代替了

非常直观的一个输出函数,同理

System.out.print() 就是个不带endl的cout

再然后我们可以发现还有System.out.printf()

这个方法是和C++的printf基本一样的

这3个输出方法都是不需要导入任何库的

 

然后我们尝试拿java写简单题目

遇到的第一个困难就是如何读入数字

然后看别人的java代码就发现了一个东西

Scanner类!直接上怎么用!



1 import java.util.Scanner;
2 
3 public class C {
4     public static void main(String []args) {
5         Scanner input = new Scanner(System.in);
6         int a = input.nextInt();
7         double b = input.nextDouble();
8     }
9 }



看起来System.in就像C++的stdin标准输入流

然后重定向一下,用不同的Scanner类中方法来读入

(上面是我脑补+口胡的...如有错误欢迎指出)

记得导入java.util.Scanner

然后读入数字的问题就解决了

 

接下来很快遇到了下一个问题

读入一个字符矩阵!

我们选择使用String数组来存储

那选择的方法呢?Scanner类中有方法nextLine()

其功能就类似于C++的getline,获取一行的读入并返回一个String类型

那么如何遍历String中的字符呢,很不幸对于String类的对象s

我们并不能像C++一样使用s[i] 来遍历元素

幸好String类中有方法 charAt() 

s.charAt(i) 就起到了s[i] 的作用

那么这个问题就解决了。

 

最后是乱七八糟的碎碎念:

1.整数类型有byte, short, int, long,多了个byte比较猎奇...范围大小分别 2^8, 2^16, 2^ 32, 2^64

   浮点型float, double, 倒是没有了肥肠奇妙的long double

   整数数字默认为int类型,浮点数数字默认为double类型

   所以给一个long类型变量赋初值,需要在数字最后面加上L,比如

   long x = 123456789123456L;

2.奇妙的类型转换

   整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算

   从低级到高级可以实现自动类型转换

低------------------------------------>高

byte,short,char—> int —> long—> float —> double      

3.数据类型转换有几个规则...

  (1)不能转换boolean类型...已经习惯了true当1, false当0的我非常难受...

  (2)高级到低级必须强制类型转换,举个例子 short x = (short)233

       这里233被默认为int类型,赋值给short类型的变量要经过这样的强制类型转换

  (3)高级到低级的强制类型转换可能损失精度或者溢出

  比如byte x = (byte)128 输出结果 x = -128 就是因为溢出

        比如float x = (float)0.111111111111 输出 x = 0.11111111 就是损失了精度

  (4)浮点数到整数是舍去小数得到,不是四舍五入!(int)4.9 = 4

  (5)不能把对象类型转换成不相关类的对象

4.啊!Java没有逗号!超级难受!