Java小白到大牛系列一:夯实Java基础知识

本文详细介绍了Java语言的基础知识,包括Java的历史、编辑器使用、程序运行、环境配置、语言特点、平台分类以及Java虚拟机的作用。此外,还深入讲解了标识符、关键字、变量、数据类型、运算符和控制语句等核心概念,是Java初学者的入门指南。
摘要由CSDN通过智能技术生成



一、了解Java语言

1、Java的历史

可自行百度,在此不做介绍。

2、Java编辑器

JDK命令:javac
打开命令行,cd 进入源文件目录,执行javac
在这里插入图片描述
编译文件已生成
在这里插入图片描述

3、运行程序

执行带main方法的class文件,命令行为:
java <CLASS文件名>
注意:CLASS文件名不要带文件后缀.class

如果执行的class文件是带包的,即在类文件中使用了:package <包名>
那应该在包的基路径下执行,命令行为:
java <包名>.CLASS文件名
在这里插入图片描述

进入编辑目录的上一层,java com.HelloWorld
在这里插入图片描述

4、Java 环境配置

首先安装JDK,安装成功后,可通过java -version 查看JDK是否安装成功和版本号。
在这里插入图片描述
设置环境变量:
打开系统中“高级系统设置”选项
在这里插入图片描述
配置“环境变量”
在这里插入图片描述
新建系统变量“JAVA_HOME”,变量值为JDK路径
在这里插入图片描述

在这里插入图片描述
编辑系统变量“Path”,把“%JAVA_HOME%\bin”加入到“Path”后面。
在这里插入图片描述

5、Java 语言特点

  • 简单
    去掉指针、内存管理、运算符重载和多继承等C++容易出错的地方
  • 面向对象
    封装、继承和多态
  • 分布式
    Java语言就是为分布式系统而设计的
  • 结构中立
    只要可以运行Java虚拟机的环境,都可以运行Java编译器编译生成的字节码文件
  • 可移植
    体系结构的中立使Java程序具有可移植性
  • 解释执行
    为实现跨平台,Java源代码文件先被编译成字节码文件,在运行时,Java解释器负责将字节码文件解释成为特定的机器码进行运行
  • 健壮
    强类型语言,语法错误在编译时会被发现,内存管理方面采用自动内存垃圾回收机制
  • 安全
    Java解释器把该字节码解释成为机器码进行执行,可以防止木马病毒,Java虚拟机采用的是“沙箱”运行模式,不允许程序访问该内存空间外的内存
  • 高性能
    Java在解释运行时采用一种即时编译技术,可使Java程序的执行速度提升很大
  • 多线程
    多线程机制可以实现并发处理多个任务,互不干涉
  • 动态
    Java应用程序再运行过程中,可以动态加载各种类库,即更新类库也不用重新编译应用程序

6、Java平台

  • Java SE
    JRE、JDK和Java类型库
  • Java EE
    为了简化企业级系统的开发、部署和管理 是以Java SE 为基础的,并提供一套服务、API接口和协议,能够开发企业级分布式系统、Web应用程序和业务组件等
  • Java ME
    主要面向消费类电子产品,使得Java程序能够在手机、机顶盒、PDA等产品上运行,基本已弃用。

7、Java虚拟机

Java 应用能够跨平台 主要是通过Java虚拟机实现的。

二、Java基础知识

1、标识符

  • 解释:所有程序员指定的名字,就是标识符
  • 命名规则:
    (1)、区分大小写:Myname 与myname 是两个不同的标识符
    (2)、首字符,可以是下划线()或美元符或字母,但不能是数字
    (3)、除首字符外其他字符,可以是下划线(
    )、美元符、字母和数字。
    (4)、关键字不能作为标识符

2、关键字

保留字符序列,java中有50个, 如: void 、main、if、 for等,java中的关键字全是小写字母。

3、保留字

既不是关键字也不是标识符,只有俩:goto,const

4、分隔符

  • 分号(;) 语句结束
  • {} 把语句块包起来
  • 空白:包括空格、制表符(tab)和换行,增加可读性

5、变量

  • 变量名:标识符起名规则相同,同一作用域内,不能重名
  • 作用域
    成员变量:类体中,方法外,作用于整个类;
    局部变量:方法体内,作用于方法内

6、常量

  • 静态常量:static 修饰,例:public static final double CON = 5.3;
  • 成员常量:final int y=10;
  • 局部常量:方法体内常量

给出例子更直观

   package com;

public class Test {
    // 成员变量
    public static double i;

    // 静态常量
    public static final double CON = 5.3;
    // 成员常量
    final int y=10;

    /**
     * 主方法
     * @param arg
     */
    public static void main(String[] arg) {
        // 局部变量
        int z;
        // 局部常量
        final double x = 6.6;

        // 给变量赋值
        z = 11;
        i = x;

        System.out.println("成员变量的值:"+ i );
        System.out.println("局部变量的值:"+ z );
        System.out.println("静态常量的值:"+ CON );
       // System.out.println("成员常量的值:"+ y ); 因为常量y 没有静态化,不能在main方法里用
        System.out.println("局部常量的值:"+ x);
    }
}

执行结果贴图:
在这里插入图片描述

7、数据类型

数据类型关键字宽度取值范围
整数类型byte1个字节(8位)-128~127
short2 个字节(16 位)-215~215-1
int4 个字节(32 位)-231~231-1
long8 个字节(64 位)-263~263-1
浮点类型float4个字节(32位)-
double8 个字节(64 位)-
字符类型char1 个字节(8 位)-
布尔类型boolean--

8、运算符

  • 算术运算符
运算符名称说明例子
-取反符号取反运算5=-(-5)
++自加一i++,先取值在加一;++i,先加一再取值z++或++z
自减一i–,先取值在减一;–i,先减一再取值z–或--z
+数字求和,或字符串连接a+b
-两数的差a-b
*两数的积a*b
/a/b
%取余余数a%b
+=加等于数字求和,或字符串连接a+=b 等同于 a=a+b
-=减等于两数的差a-=b 等同于 a=a-b
*=乘等于两数的积a*=b 等同于 a=a*b
/=除等于a/=b 等同于 a=a/b
%=取余等于余数a%=b等同于 a=a%b

贴附自增自减测试代码,结果很直观。

        System.out.println("取反:"+ -(-5));
        int w=z++;
        System.out.println("先取值在加一:"+ w);
        System.out.println("先取值在加一:"+ z);

        w=++z;
        System.out.println("先加一再取值:"+ w);
        System.out.println("先加一再取值:"+ z);

        w=z--;
        System.out.println("先取值在减一:"+ w);
        System.out.println("先取值在减一:"+ z);

        w=--z;
        System.out.println("先减一再取值:"+ w);
        System.out.println("先减一再取值:"+ z);

运行结果
在这里插入图片描述

  • 关系运算符
    表达式结果为true 或false
运算符名称说明例子
==等于相等返回true,不相等返回falsea==b
!=不等于不相等返回true,相等返回falsea!=b
>大于大于返回true,小于返回falsea>b
<小于小于返回true,大于返回falsea<b
>=大于等于大于等于返回true,小于等于返回falsea>=b
<=小于等于小于等于返回true,大于等于返回falsea<=b
  • 逻辑运算符
    表达式结果为true 或false
运算符名称说明例子
!逻辑非!a ,a 为true,结果为false!a
&逻辑与全为true时结果才为truea&b
|逻辑或有一个为true,结果就为truea|b
&&短语与有一个为true,结果就为truea&&b
|短路或有一个为true,结果就为truea||b

逻辑与(&) 和短语与(&&)的区别:& 左右两边表达式都计算,全为true时结果才为true;&&:a&&b,a为false时,不再计算b。
逻辑或(|) 和短语或(||)的区别:| 左右两边表达式都计算;||:a||b,a为true时,不再计算b。
为提高代码效率,推荐使用短语与(&&)和短语或(||)。

  • 位运算符
    位运算是以二进位(bit)为单位进行运算的,操作数和结果都是整型数据。
运算符名称说明例子
~位反按位取反~a
&位与x 与 y 位进行位与运算x&y
|位或x 与 y 位进行位或运算x|y
^异或x 与 y 位进行位异或运算x^y
>>有符号右移x 右移a 位,高位采用符号位补位x>>a
<<左移x 左移a 位,低位用0 补位x<<a
>>>无符号右移x 右移a 位,高位用0 补位x >>> a
&=位与等于等价于a = a&ba &= b
|=位或等于等价于a = ab
^=异或等于等价于a = a^ba ^= b
<<=左移等于等价于a = a<<ba <<= b
>>=右移等于等价于a = a>>ba >>= b
>>>=右移等于等价于a = a>>>ba >>>= b

无符号右移>>>运算符仅被允许用在int和long整数类型, 如果用于short或byte数据,
则数据在位移之前,转换为int类型后再进行位移计算

  • 运算符优先级

运算符优先级、顺序,从高到低是:算术运算符→位运算符→关系运算符→逻辑运
算符→赋值运算符

优先级运算符
1. (引用号) 小括号 中括号
2++ – -(数值取反) ~(位反) !(逻辑非) 类型转换小括号
3* / %
4+ -
5<< >> >>>
6< > <= >= instanceof
7== !=
8&(逻辑与、位与)
9^(位异或)
10(逻辑或、位或)
11&&
12(短路或)
13?:
14->
15= *= /= %= += -= <<= >>= >>>= &= ^=

9、控制语句

(1)分支语句:if 和switch

  • if结构
if (条件表达式) {
	语句
}
  • if-else结构
if (条件表达式) {
   语句1
} else {
   语句2
}
  • else if 结构
if (条件表达式) {
   语句1
} else if (条件表达式){
   语句2
} else if (条件表达式) {
   语句3
} else {
   语句4
}
  • switch
switch (条件表达式) {
   case1:
   	语句1
   case2:
   	语句2
   	....
   default:
   	语句n
}

switch 语句中“表达式”计算结果只能是 int、byte、short 和 char 类型,不能是long
更不能其他的类型。每个 case 后面只能跟一个 int、byte、short 和char 类型的常量,default
语句可以省略。

(2)循环跳转语句: for、while、do-while

  • for
    一般格式
for (初始化; 循环条件; 迭代) { 
   语句 
}

for-each 语句

for (object item : numbers) { 
System.out.println("Count is:" + item); 
} 
  • while
    while 语句是一种先判断的循环结构、只要循环条件满足,循环就会一
    直进行下去
while (循环条件) { 
	语句
} 
  • do-while
    do-while 语句的使用与 while 语句相似,不过 do-while 语句是事后判断循环条件结
    构,语句格式如下:
do { 
    语句组 
} while (循环条件) 

(3)跳转语句:break 、continue、return和throw

  • break
    跳出循环体,不再循环,继续执行循环体后面的代码。
  • continue
    跳出本次循环,执行下次循环。
  • return
    跳出方法体,不再向下执行
  • throw
    抛出异常情况下用,执行throw语句块。

未完待续。。。

先总结了基本语法,之后会持续更新未完基础知识。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值