鬼子可以撕得,Java为何撕不得?
学过点python,工作原因需要看点Java代码,于是我连蒙带猜地开始看了...
- Struts2+Spring+Ibatis。这三个都是Java的web框架,我把Spring理解为django,Ibatis因为小巧理解为flask。——如果我猜的没错的话,那为什么这二货项目要用三个框架?
- Jetty8是个web容器,Java的web代码需要一个容器才能跑起来,我听说过tomcat。
一直对静态语言抱有好感,下面开撕。
public/private/protected/friendly
- Java map及四个关键字
protected Map<String,String> paramsMap
- Java的Map声明类型时需要用尖括号。
- public表示该数据成员,成员函数对所有用户开放。
- private表示私有,除了class自己,即便是子类也不可调用。
- protected,对于子类及和同一目录下的其他代码可以调用。
- 不写时,默认friendly
作用域 | 当前类 | 同一package | 子孙类 | 其他package |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
friendly | √ | √ | × | × |
private | √ | × | × | × |
三元表达式
java中的三元表达式和js一样。
或且非
|| && !,与js的写法也是一致的。
final
相同点:
final可以理解为golang的const,变量用final修饰后,一旦被初始化赋值,则不能再被更改。
不同点:
final还可以修饰类,表示这个类永远不会被继承。
static
static方法一般称作静态方法,静态方法就是没有this的方法。
关键词顺序
public static final Integer NET_TYPE = 2;
@Override
@Override装饰器的作用在于,可以保证正确重写父类的方法。
@Autowired,添加注释。
public class Test1 {
public void hello(String content){
System.out.println(content);
}
}
class Test2 extends Test1{
@Override
public void hello(String content){
System.out.println(content);
}
}
interface
接口的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。
类使用implements关键字实现接口。
Animal.java
interface Animal{
public void eat();
}
Test1.java
public class Test1 implements Animal{
public void eat(){
System.out.println("I want eat");
}
public static void main(String args[]){
Test1 t = new Test1();
t.eat();
}
}
- 在Java中一切都是类
- Java的语法并不复杂,而是现实工程确实需要考虑这些问题。