JAVA基础入门自学篇

JAVA基础入门

环境准备

  • win10/ide
  • Java环境

零开始搭建项目

1. 创建空项目

  • 依次点击:File--->New--->Project
  • 选择:Empty Project, 输入项目名,如图所示

2. 创建Module

  • 依次点击:File--->New--->Module
  • 选择对应JDK等相关信息,如图所示

3. 创建java文件

  • 在src文件右键依次点击:New--->Java Class

第一个JAVA程序

  • 后续再详细讲解

JAVA注意事项

编写 Java 程序时,应注意以下几点:

  • 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的
  • 类名:类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,如 HelloWorld
  • 方法名:方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。如: FileDown
  • 源文件名 :源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
  • 主方法入口 :所有的 Java 程序由 public static void main(String[] args) 方法开始执行

注释

注释的作用是起到提示作用,注释不会被运行

  • 单行注释,两个斜杠表示://
java 复制代码
public class HelloWorld {
    public static void main(String[] args) {
        // 这是单行注释
        System.out.println("Hello");
    }
}
  • 多行注释,可以注释一段文字 /* 注释 */
  • 输入/*,按回车即可自动补全,再输入注释内容
java 复制代码
public class HelloWorld {
    public static void main(String[] args) {
        /*
        这是多行注释这是多行注释
        这是多行注释这是多行注释
         */
        System.out.println("Hello");
    }
}
  • 文档注释,可以表示这段代码是谁写的,或表达时间等等,一般不使用

  • 以下表示代码作者:无涯

java 复制代码
public class HelloWorld {
    /**
     * @author 无涯
     这是文档注释
     */
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}

标识符

  • JAVA所有组成部份都需要用到名字,如文件名、类名、方法名、变量名都被称为标识符

  • 标识符由26个英文字符

    • 大小写(a~z或A~Z)
    • 数字(0~9)
    • 下划线(_)
    • 美元符号($)组成
  • 不能以数字开头,不能是关键字!!!

  • 标识符大小写敏感!!!

关键字

  • Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
  • Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等
  • 关键字不能用作变量名、方法名、类名、包名和参数
  • Java关键字共53个
    • Java还有3个保留字:true、false、null。它们不是关键字,而是文字。
    • 包含Java定义的值。和关键字一样,它们也不可以作为标识符使用。

JAVA数据类型

  • JAVA是强数据数型,必须先定义才能使用!!!
  • byte(1个字节,8位),short(2个字节,16位),int(4个字节,32位)
  • long(8个字节,64位),float(4个字节,32位)
  • double(8个字节,64位),boolean(1位),char(2个字节)

基本类型

  • 注意:对应的类型,比如接上对应的值 ,比如:int age = "无涯",无涯是字符串,这样就会报错!!!

整型--int

  • int age = 40

双精度--double

  • double height = 1.75

字符串--String

  • 在Java中,一般约定字符串使用双引号来表示,字符使用单引号来表示
    • String name = "志超"
    • char sex = '男'

布尔值--bloolean

  • 布尔值 true或false,且只能小写
java 复制代码
public class HelloWorld {


    public static void main(String[] args) {
            // 整数
            int age= 40;

            // 双精度  占8个字节
            double height = 3.145654890123456789;

            // 字符串
            String name = "无涯";

            // char 字符存放单个中文或英文,且只能用单引号 占2个字节
            char sex = '男';

            // 占4个字节
            float num = 3.1234567F;

            // 布尔值  true或false,且只能小写
            boolean flag=true;
            System.out.println(age);
            System.out.println(height);
            System.out.println(name);
            System.out.println(sex);
            System.out.println(num);
            System.out.println(flag);
    }
}

引用类型

数组

创建数组

Java语言使用new操作符来创建数组,语法如下:

java 复制代码
arrayRefVar = new dataType[arraySize]; //arraySize指数组长度

上面的语法语句做了两件事:

    1. 使用 dataType[arraySize] 创建了一个数组
    1. 把新创建的数组的引用赋值给变量 arrayRefVar
java 复制代码
dataType[] arrayRefVar = {value0, value1, ..., valuek};

类型转换

  • java是强类型语言,在运算过程中需要进行类型转换
  • 运算中,不同类型数据先转化同一类型,再进行计算

低------------------------------>高

byte->short->char->int->long->float->double

  • 强制类型转换

    • 由高到低, 必须进行转换
    • 语法:(类型)值,如(byte)num
    java 复制代码
    public class HelloWorld {
    
    
        public static void main(String[] args) {
                // 定义整型
                int num=100;
                // 将整型的值直接复制给byte类型是不可以,需要进行转换
                //byte a= num; 错误写法
                byte a=(byte)num;  
                System.out.println(num);
                System.out.println(a);
        }
    }
  • 自动类型转换

    • 由低到高
java 复制代码
public class HelloWorld {


    public static void main(String[] args) {
            // 定义整型
            int num=100;
            // double是小数,所以有尾数
            double a=num;
            System.out.println(num);
            System.out.println(a);
    }
}

注意

  1. 不能对布尔值进行转换
  2. 不能把对象转换为不不相干的类型
  3. 转换的时候可能存在内存溢出问题
  4. 高转低时,需要强制转,反之不需要

变量

  • 变量是什么?是可以变化的量!!!
  • JAVA是强类型语言,每个变量都必须声明类型
  • 要素包括:变量名、变量类型、作用域
  • 不建议一行定义同类型多个值!!!如:int a,b,c

作用域

类变量

  • 类变量,可以直接进行调用,不需要进行实例化
  • 语法: static 类型 变量名
  • 学习过程中,变量都加上static方便调用

实例变量

  • 实例变量从属于对象,所以使用前必须要进行实例化对象才可以进行调用
  • 实例变量,从属于对象,即需要实例化对像Demo8这个类之后才能调用
  • 实例变量没有定义值,会变成这个默认值
    • int默认值: 0
    • String默认值: null
    • 布尔值默认: false

局部变量

常量

  • 初始化后不能变化的值,不会变动的值
  • 常量是一种特殊的变量,它的值被设定后,在程序后续运行过程中不允许被改变
  • 常量一般用大写!!!
  • 语法
    • final double 变量名 = 值

变量规范

  • 变量、方法、类名遵循: 见名其义,就是一看到就知道大概啥意思

  • 不使建议使用拼音或中文当做变量名:name mingzi(错误)

  • 类名: 首字母大写和驼峰原则: Hello,HelloWorld

  • 类成员变量: 首字母小写和驼峰原则: firstDay

  • 局部变量:首字母小写和驼峰原则 firstName

  • 常量:大写字母和下划线: MAX_BIG

  • 方法名: 首字母小写和驼峰原则: run(),runRun()

运算符

  • 表格中的实例假设整数变量A的值为10,变量B的值为20

加减乘除

  • 加号另外的一个作用是:连接作用
操作符 描述 例子
+ 加法 - 相加运算符两侧的值 A + B 等于 30
- 减法 - 左操作数减去右操作数 A -- B 等于 -10
* 乘法 - 相乘操作符两侧的值 A * B等于200
/ 除法 - 左操作数除以右操作数 B / A等于2
取余 - 左操作数除以右操作数的余数 B%A等于0
  • 算术运算符
  • 赋值运算符
  • 关系运算符
  • 逻辑运算符

下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假, 必须同类型才能进行计算

操作符 描述 例子
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 (A && B)为假。
| | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 (A | | B)为真。
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 !(A && B)为真。

自增/自减

  • 代码调式的方法,可以看出代码运行过程
  • --的过运算过程和++一致

赋值运算符

操作符 描述 例子
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A,C 与 A 同类型时等价于 C = C / A

运算符优先级

  • 当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题
  • 在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大
类别 操作符 关联性
后缀 () [] . (点操作符) 左到右
一元 expr++ expr-- 从左到右
一元 ++expr --expr + - ~ ! 从右到左
乘性 * /% 左到右
加性 + - 左到右
移位 >> >>> << 左到右
关系 > >= < <= 左到右
相等 == != 左到右
按位与 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 | | 左到右
条件 ?: 从右到左
赋值 = + = - = * = / =%= >> = << =&= ^ = | = 从右到左
逗号 左到右

包机制

  • 包名不是凭空定义,一般利用公司域名倒置作为包名

条件语句

if

if...else

if...else if ...else

if 语句后面可以跟 else if...else 语句,这种语句可以检测到多种可能的情况。

使用 if,else if,else 语句的时候,需要注意下面几点:

  • if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
  • if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
  • 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。

循环语句

while

  • 语法规则及说明:只要布尔表达式为 true,循环就会一直执行下去。
  • while后面要带括号----->()
java 复制代码
while( 布尔表达式 ) {
  //循环内容
}
  • 条件满足时运行,直接到满足时跳出循环
  • 如果条件一开始就不满足就完全不会运行代码

do...while

  • 对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次

  • do...while 循环和 while 循环相似,不同的是,do...while 循环至少会执行一次。

注意:

  • 布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。
  • 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。
  • while后面要带分号----->;

for循环

  • 注意括号内要有分号隔开,最后更新不需要分号
java 复制代码
for(初始化; 布尔表达式; 更新) {
    //代码语句
}

break

  • 跳出整个循环,继续下面的代码运行

continue

  • 跳出当前循环,继续下一次循环

方法

方法的优点

  • 使程序变得更简短而清晰, 有利于程序维护,
  • 可以提高程序开发的效率
  • 提高了代码的重用性

方法定义

  • **修饰符:**修饰符为可选,定义了该方法的访问类型。
  • 返回值类型 :
    • 方法定义了返回值类型,则必须带return
    • 如果没有返回值,即void,则不需要带return
  • **方法名:**是方法的实际名称。方法名和参数表共同构成方法签名。
  • 参数:
    • 定义参数,该参数称之为:形参
    • 方法被调用时,传递值给参数, 这个值被称为实参
  • **方法体:**方法体包含具体的语句,定义该方法的功能

方法调用

  • 当方法返回一个值的时候,方法调用通常被当做一个值(因为方法有返回值,需要有变量来接收)
  • 当方法返回值是void,方法一定是一条语句

方法重载

  • 重载是在一个类中,有相同函数名,但形参不同的函数
  • 方法重载规则:
    • 方法名必相同---强制
    • 参数列表不同(个数不同或类型不同,参数排列顺序不同)---强制
    • 方法返回值可相同也可以不同
    • 仅仅返回类型不同不足以成为方法的重载
  • 方法相同时,编译器会根据调用方法的参数个数去匹配正确的方法。如果匹配失败则编译器报错

不定长传参

  • 就是不知道要传入多少个参数(可能没有,可能是1个或者多个),这个时候就要用到不定长传参
  • 不定长要写在参数列表最后面

构造方法

相关推荐
qq_172805592 分钟前
RUST学习教程-安装教程
开发语言·学习·rust·安装
wjs202410 分钟前
MongoDB 更新集合名
开发语言
monkey_meng13 分钟前
【遵守孤儿规则的External trait pattern】
开发语言·后端·rust
草莓base25 分钟前
【手写一个spring】spring源码的简单实现--bean对象的创建
java·spring·rpc
legend_jz38 分钟前
【Linux】线程控制
linux·服务器·开发语言·c++·笔记·学习·学习方法
drebander1 小时前
使用 Java Stream 优雅实现List 转化为Map<key,Map<key,value>>
java·python·list
乌啼霜满天2491 小时前
Spring 与 Spring MVC 与 Spring Boot三者之间的区别与联系
java·spring boot·spring·mvc
tangliang_cn1 小时前
java入门 自定义springboot starter
java·开发语言·spring boot
程序猿阿伟1 小时前
《智能指针频繁创建销毁:程序性能的“隐形杀手”》
java·开发语言·前端
Grey_fantasy1 小时前
高级编程之结构化代码
java·spring boot·spring cloud