思维之海

——在云端,寻找我的星匙。

Java学习手册

主要选取Java中实用性最大的部分,浅尝辄止。

References

CMU 17514 Principles of Software Construction: Objects, Design, and Concurrency

强烈推荐17514这门课,特别对于没有Java基础的人来说,越早选越好!这门课对于我来说很实用,学到的东西后来在Amazon实习的时候几乎都有用到。比如在写项目的时候,我会很自然地先考虑用什么Design Pattern,怎么利用继承多态来增加它的extensibility, robustness,这样写出来的代码通常都很好看。17514这门课,从基础到高阶,它几乎一一俱全。最基础的Java语法,到Build Tool(Gradle),Unit Test,Integration Test,Design Pattern ,高阶Git,再到比较复杂的OOD,java GUI,Java Concurrency等等,我几乎把最实用的都学了个遍。后来在Amazon实习的时候,Mentor和Manager都感觉我很有经验的样子,啥都会。

作者:AdmitWrite留学
链接:https://www.zhihu.com/question/23836035/answer/1169165551
来源:知乎

Runoob 网络工具综合学习网站

http://www.runoob.com/java/java-tutorial.html

Java数据库连接——JDBC基础知识(操作数据库:增删改查)

引入

Java语言特点

  • 简单
  • 面向对象
  • 分布式
  • 健壮
  • 安全
  • 解释型
  • 高性能
  • 多线程
  • 动态

开发工具

Java 开发环境配置

安装测试

安装开发工具。

最后的效果以命令行cmd窗口输入java有反应为准。

Eclipse启动时报错Java was started but returned exit code=13

Hello world!

1
2
3
4
5
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

命令行运行

1
2
javac HelloWorld.java
java HelloWorld

javac编译为.class文件,java直接调用。

Source: http://www.runoob.com/java/java-basic-syntax.html

img

基本语法

注意事项

  • 大小写敏感
  • 类名:首字母应该大写。每个单词的首字母应该大写。
  • 方法名:首字母应该小写。后面的每个单词的首字母应该大写。
  • 源文件名:源文件名必须和类名相同
  • 主方法入口:所有的Java 程序由public static void main(String []args)方法开始执行。
  • 标识符:可以用使用$命名
    • 合法标识符举例:age、$salary、_value、__1_value

STL4Java

当需要高精度整数时,可以考虑Java。

高精度类 BigInteger & BigDecimal

Java没有重载运算符。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.io.*;
import java.util.*;
import java.math.BigInteger; // 高精度整数
import java.math.BigDecimal; // 高精度实数,使用方法类似
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
BigInteger A = sc.nextBigInteger();
BigInteger B = sc.nextBigInteger();

BigInteger C = new BigInteger("12354"); // 初始化
BigInteger C = A.add(B); //加法
C = A.subtract(B); //减法
C = A.multiply(B); //乘法
C = A.divide(B); //除法
BigInteger[] C_ = A.divideAndRemainder(B); //带余减法,返回数组:[商, 余数]
A.equals(B); //判等
A.comareTo(B); //A小于B返回-1,等于返回0,大于返回1
A.mod(B); //取模
A.gcd(B); //求最大公约数
A.max(B); //求最大值
A.min(B); //求最小值
A.abs(); //绝对值
A.pow(B); //A的B次幂
A.modPow(B, mod); // 求幂并取模
System.out.print(C);
}
}

Java的乘法复杂度与Python类似。但是写法比较繁琐。