【Java基础系列】- Java入门

【Java基础系列】- Java入门


一、运行一个Java程序

HelloWorld程序:HelloWorld.java文件名和带mian方法的类名保持一致

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

其中public class HelloWorld 是一个类,public static void main是这个类中的main方法,方法main后面{}中的内容是main方法的方法方法体

运行方式:

$ javac HelloWorld.java
$ java HelloWorld
Hello World

javac将.java文件编译为.class文件

1. 代码详细解释

public static void main(String[] args)

这是 Java 程序的入口地址,Java 虚拟机运行程序的时候首先找的就是 main 方法。只有有 main() 方法的 Java 程序才能够被 Java 虚拟机运行,可理解为规定的格式。

对于里面的参数及修饰符:

  • public:表示的这个程序的访问权限,表示的是任何的场合可以被引用,这样 Java 虚拟机就可以找到 main() 方法,从而来运行 javac 程序
  • static: 表明方法是静态的,不依赖类的对象的,是属于类的,在类加载的时候 main() 方法也随着加载到内存中去,代码只在方法区存一份
  • void:方法是不需要返回值的
  • main:约定俗成,规定的
  • String[] args:从控制台接收参数,字符串数组,可以输入多个字符串作为参数,空格隔开,如$ java Test aaa bbb ccc ,可通过“ ”输入空格参数$ java Test aaa "b bb" ccc

2. 程序执行过程

  • 程序从硬盘加载到内存,由操作系统负责找到main方法并开始执行,执行过程中维护进程内存空间占用,包括堆、栈、代码段、数据段
    Alt
    更细划分如下:
    Alt

3. 标识符

  • Java对各类、方法、变量、常量等所起的名,该字符序列称为标识符

  • 标识符只能以字母、_、$开头,后面才可有数字,中间不能有空格

  • 标识符大小写敏感

二、Java变量

Java变量本质上是内存的一小块区域,通过变量名来访问这块区域,故每个变量使用前必须申请/声明,并赋值之后才可使用

1.分类:

按照被声明位置划分:

  • 局部变量:定义在 方法内部,或方法的参数
  • 成员变量:定义在 类内部,方法外部
  • !!变量必须在类里面

按照所属的数据类型划分:

  • 基本数据类:
    • 数值型:整型(byte,short,int,long),浮点型(float,double)
    • 字符型 char
    • 布尔型 boolean
  • 引用数据类型:类 class,接口 interface,数组

2. 字节数和大小

Java字符采用Unicode编码,每个字符两字节(16位)

Java中允许使用转义字符‘\’来转变所接字符含义,如‘\n’代表换行符

AltAlt

3. 类型转换

boolean不能转换为其他数据类型

实数常量(如1.2)默认为double,整数常量(如12)默认为int

float赋值需要:float f1=1.2f; long l1=123L;

容量(覆盖数据范围)大小:byte<short<char<int<long<float<double

不同类型数据一起计算时,容量小的自动转为大的

!!注意类型转换可以将占小空间的转换为大的(除了整型转浮点型会失精度外不会出问题),反过来需要进行强制类型转换,会溢出或降低精度(因为会把多出的字节直接舍了)

!!!对于char、byte、short在自己与自己或互相之间计算时会先转成int再计算

例子:char c1=‘a’,c2=125都没问题,但char c3=888888888有问题,超了

  • long l1=88888888;有问题,因为该数字默认看成int,但数字大小超过了int最大范围

  • int i=1; i=i/10;没问题,都会看成int来计算后赋给i,但i=i*0.1有问题

  • float f1 = f2 + f3 *0.1有问题,因为0.1默认看成double

  • byte b = b1 - b2;有问题,byte类型变量b1、b2计算时会转换成int,之后结果int赋给byte出错

三、运算符

  • int i=1;int i=(i++);是先赋值再++,int i=(++i);是先++再赋值,同理–

  • !a取非,a&b与,a|b或,a^b异或(同0异1),a&&b短路与,a||b短路或(短路&&与||根据前面的判断条件可知结果一定时便会直接短路,不会算后面)如(i<5)&&(j>0)&&(k>8)

  • 对于字符串,+可用于字符串的连接,+只要一侧是字符串,算时会把另一侧也转换为字符串

  • 运算优先级:()> ++ - - > / % > ± > <= > == != > & > ^ > |

  • 三目表达式: x?y:z 若x为true则整个表达式为y的值,否则为z的值

四、语句

分支:if语句:if () {} else if () {} else () {}, switch(i){case 0: 语句break;case 4:语句break; }

循环:for语句,while,do{语句} while(逻辑表达式):先do后判断

​ break退出当前循环,continue跳过这轮循环继续循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值