经典的hello world

1
2
3
4
5
6
7
8
9
// Hello.java
public class Hello
{
//程序的主函数入门
public static void main(String args[]){
//输出打印字符语句
System.out.println("HelloWorld!");
}
}

这里需要注意两点:

  1. 文件名和类名是一样的
  2. 文件名和类名是大小写敏感的

在命令行中执行

1
2
3
4
$ javac Hello.java
# 此时多出一个Hello.class文件
$ java Hello
HelloWorld! # 此处输出HelloWorld。

如果不是单文件工程的写法

1
2
3
4
5
6
7
8
9
10
11
12
13
// 定一个java类
public class Dog{
int dogAge;

public public Dog(){
}
public void getAge(int age){
return dogAge;
}
public void setAge(){
dogAge = age;
}
}
  1. 一个源文件只能有一个public类
  2. 一个源文件可以有多个非pulic类
  3. 如果类定义在某个包中,那么package定义在源文件首行
  4. 如果源文件包含import语句,那么import应该放在package和类定义之间

java的继承

1
2
3
4
5
class Vehicle{}
class Speed{}
public class Van extends Vehicle{
private Speed sp;
}
  1. java只支持单继承(继承基本类和抽象类)
  2. 但是可以用接口来实现多继承
    1
    public class Apple extends Fruit implements Fruit1, Fruit2{}

java包 package

package的作用是为了更好的组织类,防止命名冲突。

package的目录结构

类放在包中会有两种主要的结果:

  1. 包名成为类名的一部分,正如我们前面讨论的一样。
  2. 包名必须与相应的字节码所在的目录结构相吻合。

打包成可执行文件

MANIFEST-employee.MF

1
2
3
4
Manifest-Version: 1.0
Created-By: michael
Class-Path: .
Main-Class: employee/EmployeeTest

脚本打包成jar文件

1
2
3
4
5
6
7
$ tree employee
employee
├── Employee.class
├── Employee.java
├── EmployeeTest.class
└── EmployeeTest.java
$ jar cvfm eee.jar MANIFEST-employee.MF -C employee .

java框架选择

  1. 基础框架 Spring Boot, Netty
  2. 微服务框架 Spring Cloud
  3. 数据访问层 Hibernate, MyBatis

还有一些乱七八糟的东西

  • JSP,Javabean,Servlet
  • Tomcat
  • Struts
  • SpringMVC
  • JDBC
  • SpringBoot

jar && war

待补充

maven的加速器

增加到maven的setting.xml中,可能在~/.m2下面,也有可能在/etc/maven下面

1
2
3
4
5
6
7
8
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>