经典的hello world
// Hello.java
public class Hello
{
//程序的主函数入门
public static void main(String args[]){
//输出打印字符语句
System.out.println("HelloWorld!");
}
}
这里需要注意两点:
- 文件名和类名是一样的
- 文件名和类名是大小写敏感的
在命令行中执行
$ javac Hello.java
# 此时多出一个Hello.class文件
$ java Hello
HelloWorld! # 此处输出HelloWorld。
如果不是单文件工程的写法
// 定一个java类
public class Dog{
int dogAge;
public public Dog(){
}
public void getAge(int age){
return dogAge;
}
public void setAge(){
dogAge = age;
}
}
- 一个源文件只能有一个public类
- 一个源文件可以有多个非pulic类
- 如果类定义在某个包中,那么package定义在源文件首行
- 如果源文件包含import语句,那么import应该放在package和类定义之间
java的继承
class Vehicle{}
class Speed{}
public class Van extends Vehicle{
private Speed sp;
}
- java只支持单继承(继承基本类和抽象类)
- 但是可以用接口来实现多继承
public class Apple extends Fruit implements Fruit1, Fruit2{}
java包 package
package的作用是为了更好的组织类,防止命名冲突。
package的目录结构
类放在包中会有两种主要的结果:
- 包名成为类名的一部分,正如我们前面讨论的一样。
- 包名必须与相应的字节码所在的目录结构相吻合。
打包成可执行文件
MANIFEST-employee.MF
Manifest-Version: 1.0
Created-By: michael
Class-Path: .
Main-Class: employee/EmployeeTest
脚本打包成jar文件
$ tree employee
employee
├── Employee.class
├── Employee.java
├── EmployeeTest.class
└── EmployeeTest.java
$ jar cvfm eee.jar MANIFEST-employee.MF -C employee .
java框架选择
- 基础框架 Spring Boot, Netty
- 微服务框架 Spring Cloud
- 数据访问层 Hibernate, MyBatis
还有一些乱七八糟的东西
- JSP,Javabean,Servlet
- Tomcat
- Struts
- SpringMVC
- JDBC
- SpringBoot
jar && war
待补充
maven的加速器
增加到maven的setting.xml中,可能在~/.m2下面,也有可能在/etc/maven下面
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>