一、简要
背景:
java可能是很多同学大学学习的第一门或者第二门语言,大部分人可能并不需要这样一篇熟悉性语法相关的文章。
但是有一部分同学可能和我经历相似,大学课程并没有java,工作后一直从事其他语言相关的工作(如python等)。知道java是什么,也知道java的一些简单的细节(如jdk、jvm)、比较深入地了解其他语言的情况(语法、数据结构、面向对象、单元测试等),但是并没有直接做过java的开发。
笔者在某个场景下,发现对方只有java sdk且用其他语言实现相关协议比较困难、且py4j等lib性能较差情况下,快速地从零学习语法、学习框架、学习工程化相关(打包、单元测试等),从0到1实现高性能(百万TPS)数据处理程序的开发(当然从1到100才算更有价值)。
Quick Java Explanation for Programmers 命名
希望能通过这个简单的说明,快速熟悉java的语法
参考著名的python快速入门(Quick Python Script Explanation for Programmers):https://mp.weixin.qq.com/s/ewcvNhc3zMGqDP0ddYhzTg
二、内容
package cn.bear2;
import java.util.ArrayList;
//一个源文件中只能有一个public类,源文件的名称应该和public类的类名保持一致
public class Demo {
public static void main(String[] args) {
/*
* this is a demo;
* */
System.out.println("hello world"); //双引号可以装若干字符,称为字符串
System.out.println('h'); // 单引号只能装单个字符
//function call
foo(5, 10);
// 数组
String[] fool_array= {"hello","world"};
System.out.println(fool_array);
// ArrayList,更习惯这个.属于引用类型数据结构
ArrayList<String> fool_array_list= new ArrayList<String>();
fool_array_list.add("hello");
fool_array_list.add("world");
System.out.println(fool_array_list);
// for 循环
for (int i = 0; i <= 3; i++) {
System.out.println(i);
}
// for each 风格
for(String item:fool_array_list){
System.out.println(item);
}
long dt = System.currentTimeMillis();
System.out.println(dt);
//final 修饰的常量是不能修改的
final double PI = 3.1415927;
// 枚举demo
FreshJuice juice = new FreshJuice();
juice.size = FreshJuice.FreshJuiceSize.SMALL;
}
private static void foo(Integer param1, Integer secondParam) {
Integer res = param1 + secondParam;
if (res > 10) {
System.out.println("res大于10");
} else if (res < 1) {
System.out.println("res小于1");
} else {
System.out.println(res);
}
}
}
//一个源文件可以有多个非public类
class FreshJuice {
enum FreshJuiceSize {SMALL, MEDIUM, LARGE}
FreshJuiceSize size;
}
三、后续
java是一门工程化风格的语言,想要掌握Java,仍然需要学习以下知识,这里就不一一展开。
- ide使用(eclipse\idea)
- Java’s collection
- 正则表达式
- 异常处理相关
- 多线程编程
- 网络编程
- 文件操作与IO
- 图形编程
- 单元测试
- 打包(ant/maven)
- JVM相关
工程化风格意味着你需要学习很多和语言不直接相关,却是该语言开发工作中无法绕开的一些知识,但是万物不离其宗,语言和语言特性仍然是其根本。