捡起Java——第一天

在学习过程中,基础部分是跟着菜鸟教程进行复习的,所以,读者也可以根据菜鸟教程内容进行学习。这里挂一个菜鸟教程的链接:Java教程——菜鸟教程

首先我们先用hello world进行热身

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

在这里面我们需要注意的点就是:虽然String[] args和String args[]是相同的执行结果,但是按照习惯来说,我们应该使用String[] args,这样的好处是可以避免歧义和误读。

对于Java编译器来说,我们直接运行就可以了;如果需要通过命令行运行java文件,我们可以在指定文件夹下在终端输入命令:javac xxx.java,再运行java xxx,即可以正常运行文件。

这里介绍这两个命令:

  •         javac:用法为javac xxx.java。其功能是将java源文件编译为class字节码文件,这时会获得一个xxx.class的文件
  •         java:用法为java xxx。其功能是运行编译的字节码文件。

注:但是我在这里运行的时候,虽然产生了.class文件,但是在进行java xxx的时候,却发生报错:显示为java.lang.NoClassDefFoundError: onceagaintolearn/day_01 (wrong name: day_01)。这个错误在其他博客中由解决办法,在这里挂个链接:解决NoclassDefFoundError报错

由于暂时小编使用的编译器运行,暂时不对该问题进行解决,在后面如果遇到同类问题,会专门出一篇文章对该问题进行解决。

下面开始正式的重新捡起Java内容:

基础语法

对于Java方面,主要的概念有:

  • 对象:就是类的实例化,存在状态和行为。
  • 类:是一类对象的模板,能够描述一种同类型的对象的行为和状态。
  • 方法:方法就是类中对对象行为的描述,通过函数定义各种行为,如逻辑运算、数据修改和很多行为都是在方法中完成的。
  • 实例变量:实例变量就是对对象的特殊化,比如对于dog,就会存在不同种类的dog,比如金毛、拉布拉多、马犬等就是不同种类的dog。那么每一种种类的dog就是一个独特的对象,这就是实例化的变量。

基本语句:

  • Java语法是大小写敏感的,(其实,windows系统也是大小写敏感的,对于系统的介绍会在web安全中进行介绍)
  • 类名:对于类的命名规则,我们一般将类的每个单词的首字母进行大写。
  • 方法名:对于方法名,我们除了第一个单词的首字母进行小写之外,其他单词的首字母用大写。
  • 源文件名:源文件名和类名必须一致。在保存文件的时候,使用类名当做文件名进行保存,文件名的后缀为.java。(:如果文件名和类名不相同会导致编译报错)
  • 主方法入口:所有Java程序的入口都是public static void main(String[] args)方法开始的。

Java标识符:

Java中的所有组成部分都需要名字。类名、方法名、变量名都被称为标识符。

而标识符的命名存在几点注意的:

  • 标识符的开始都是大小写字母,美元符$或者下划线_开始。
  • 除了首字符,其他部分可以是字母、美元符、下划线、数字组成。
  • 关键字不能作为标识符(如static)
  • 标识符是大小写敏感的

Java修饰符:

存在两类修饰符:

  • 访问控制修饰符:default、public、protected、private。用于对类,方法,变量,构造方法的访问控制。
    • default:在同一个包内可见,不使用任何的修饰符,使用范围:类、接口、变量、方法。
    • public:在所有类内可见,使用范围:类,变量,方法,接口。
    • protected:在同一个包内的类和所有子类可见,使用范围:变量、方法。(不可以用来修饰类(外部类))。
    • private:在同一个类中可见。使用范围:变量,方法(不能用来修饰类(外部类))。
  • 非访问控制修饰符:final、abstract、static、synchronize
    • final:修饰变量,类,方法。修饰的类不能继承、修饰的方法不能重写、修饰的变量为常量。
    • abstract:用来创建抽象类和抽象方法。声明抽象类的目的是为了对类进行扩充。一个类不能同时被abstract和final进行修饰。如果包含抽象类方法,那么该类就一定声明为抽象类,不然就会编译出错。在抽象类中可以包含抽象方法和非抽象方法。
      • 对于抽象方法,需要子类进行具体的实现
      • 抽象方法不能被声明为final和static
      • 继承抽象类的子类必须实现父类中的所有抽象方法,如果子类为抽象类则不需要。
      • 如果抽象类包含1个及以上的抽象方法,那么该类必须声明为抽象类;但是抽象类可以不包含抽象方法。
      • 抽象类的声明用分号结尾。
    • static:用来修饰类方法和类变量。
      • 静态变量:用来声明独立于对象的静态变量,静态变量也被称为类变量,局部变量不能被声明为static变量。
      • 静态方法:static关键字用于声明独立于对象的静态方法,静态方法不能使用类的静态变量。静态方法从参数列表中得到数据,之后对其进行计算数据。
    • synchronize:以及(volatile修饰符),用来修饰线程的编程。
      • synchronize修饰符:关键字声明的方法同一时间只能被一个线程访问。synchronize修饰符可以应用于四个访问控制符。
      • transient修饰符:序列化对象包含transient修饰的实例变量时,JVM虚拟机跳过特定的变量。
      • volatile修饰符:volatile修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且当成员变量发生变化时,会强制线程将变化值回写到共享内存中,在这样的任何情况下,两个不同的线程总是能看到某个成员变量的同一个值。
  • 访问控制和继承:
    • 父类中的public方法在子类中也必须声明为public
    • 父类中的protected方法在子类中可以声明为protected,也可以声明为public,但是不能声明为private
    • 父类中声明为private的方法,不能被子类继承。

Java变量:

  • 局部变量
  • 类变量(静态变量)
  • 成员变量(非静态变量)

Java枚举:

枚举限制变量只能是预先设置好的值,通过枚举可以减少代码中的bug。

Java注释:

和C语言的注释一样,//表示单行注释,/**/表示多行注释

继承:

在Java中,一个类可以由其他类进行派生,如果你要创建的类是已有的类中存在的属性或者方法,那么我们可以通过继承来使得减少重复性的操作,直接用我们新建的类来继承已有的类。

通过继承,我们可以复用已有的方法和属性,而不用重写代码。被继承的类被称为超类(super class),派生类称为子类(sub class)。

接口:

在Java中,接口可以理解为对象间相互通信的协议。接口定义派生时需要使用的方法,但是方法的具体实现还是需要子类进行。

补充一:

Java源程序和编译型源程序相比其区别在于:

编译型源程序通过编译连接生成可执行EXE程序,之后直接执行在操作系统上。

而Java源程序经过编译之后生成字节码程序,而字节码程序必须通过解释器进行解释后才能运行在操作系统上。

补充二:

访问控制符的比较:

参考文献及图片来源:菜鸟教程

如果文中存在谬误,请读者指出,小编会及时进行学习和修改,希望可以一起学习Java知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值