JavaBase01

本文介绍了Java语言的基础知识,包括历史、安装、编译过程、分类(Java SE, EE, ME)、流行原因(面向对象、跨平台特性)、JVM与JRE的区别,以及编程注意事项。涵盖了变量、数据类型、命名规则和常用工具IDE。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java基础知识

概述

Java是1995年Sun公司发布,如今被Oracle收购

下载安装Java时从Oracle官网下载,最好下载LTS长期维护版本。Java8,Java11,Java17

Java是一门半编译半解释的面向对象语言

由于Java虚拟机JVM的存在,可以全平台运行。

Java程序运行过程

public class Test{
	public static void main(String[] ars){
		System.out.println("Hello world");
	} 
}

编辑的是.java文件,称为源文件。通过javac命令进行编译,生成同名的 .class字节码文件,再虚拟机上解释该文件运行。

Java的分类

  • JavaSE

  • JavaEE

  • JavaME

JavaME称为Java微型版,用于开发移动应用,早期的塞班系统中会使用,如今已经淘汰

JavaSE称为Java标准版,是java的核心和基础,也是JavaME和JavaEE的核心。可以用于开发桌面端程序。如IDEA就是用java开发的。

JavaEE称为Java企业版,用于开发WEB应用。Java 的留下全靠JavaEE。WEB应用如门户网站、电子商务、电子政务等服务器都是由JavaEE实现。

Java为什么流行

java是一门“半解释半编译”的“面向对象”语言

java有很多优点,尤其是这几点:

  • 简单

  • 安全

  • 开源

  • 多线程

  • 半解释半编译

  • 面向对象

Java能够跨平台运行的原理

Java有一个最大的特点就是跨平台:“一处编译,处处运行”。

Java有一个核心:JVM,Java Virtual Machine称为Java虚拟机,它用于解释Java的字节码文件。

在不同的平台上,安装JVM后,就能解释当时编译的字节码文件。

开发人员在编辑Java代码后,会保存为.java的源文件,

将源文件金国编译后,会生成。class的字节码文件,

由JVM解释字节码文件。

安装Java后,会安装JVM和JRE。

JDK和JRE

JDK全程Java开发工具包Java Development Kit。包含了JRE,Java的调试、编译等工具。

JRE全程Java运行环境Java Runtime Environment。包含了JVM,java运行工具等。

(jdk(jre(jvm)))

第一个Java程序

public class Main {

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

Java程序的运行流程

编辑.java源文件——》javac命令编译——》生产.class文件——》java命令由JVM解释运行

集成开发环境IDE

Integrated Development Environment

集成了编辑源代码、调试、运行等功能的工具称为IDE。

Java的IDE有很多,如Eclipse、MyEclipsse、STS、IDEA等都是集成开发环境。

当前的主流是IDEA。

Java程序中的注意事项

  • 要写代码,必须想创建class,class称为类,是一个java程序的基本组成单位
  • 每个能够运行的java程序,有且只有一个main方法,称为主方法/入口函数,是程序的启动
  • 符合
    • Java中的符号全部都是英文状态下的符号,可以在输入法中设置中文状态使用英文标点
    • “{}”必须成对出现。用于定义类、定义方法和定义代码块
    • “[]”必须成对出现。用于定义数组、使用数组
    • “()”必须成对出现。用于表示方法的参数
    • “空格”用于分割关键字和代码。可以是一个空格,也可以是多个
    • “.”用于调用某个类或对象的属性和方法
    • “;”用于表示一句代码的结束,大括号后不需要加分号
  • 换行和缩进
    • 在每出现一次大括号时,就要进行一次缩进

Java程序中的注释

注释可以对代码进行解释说明或屏蔽不用的代码。 编译时无视注释,注释分为

  • 单行注释 快捷键:ctrl + /
//123	
  • 多行注释 快捷键:ctrl + shift + /
/* 123
   123
   123
*/
  • 文档注释
/**
 * 文档注释
 * 通常用于解释整个java类或某个方法或某个变量,
 * 最终可以通过java命令自动生成文档
 */

IDEA快捷键

ctrl+X 删除一行

ctrl+shift+f10 运行

ctrl+shift+方向键 移动选中的代码块

变量.sout 回车 快捷输出

ctrl+alt+L 调格式

条件 . if 快速生成if

IDEA在粘贴多行字符时自动转义符换行加拼接

编程语言的命名规则

  • 驼峰命名法

如果用多个单词描述一个内容,除首字母外,其他单纯首字母大写。

如studentsName、empId

  • 帕斯卡命名法

使用单词首字母去全部大写

Java中的标识符

Java中的英文、方法名和变量名称统称为标识符。

  • 类名使用帕斯卡命名法
  • 方法名和变量名使用驼峰命名法
  • 命名时做到“见名知意”

非强制性,约定俗成的内容

Java中标识符的命名规则

  • 标识符使用字母、数字、下划线和$组成
  • 不能以数字开头
  • 不能使用Java中的关键字(保留字)

强制要求,无法编译

Example:

  • 类名 Test Person Animal Cat UserController StudentService

  • 变量名 age lastName firstName

  • 方法名 login() findEmpById(int id)

  • 常量 COUNTRY_NAME

Java中的数据类型

Java中分为两大数据类型:原始(基本)类型和引用类型

原始类型

  • 整型

    1Byte=8bit 00000000~11111111 256

    • byte
    • short
    • int
    • long
  • 浮点型

    • float单精度浮点型,赋值时在数字后加f或F
    • double双精度浮点型
  • 字符型

    • char,赋值时可以用单引号引起来的字符或一个数字,或是数字ascii中的数字或者是一个转义字符ascii码(\t、\n)

转义字符

\t
\n 换行
\"
\'
\b 退格
\r 回车
\\ 字符“\”
\0 null
  • 布尔型

​ boolean

类型名所占字节大小范围
byte1字节-128~127
short2字节-32768~32767
int4字节-2,147,483,648~2,147,483,647
long8字节-9,223,372,036,854,775,808~9,223,372,036,854,775,807
float4字节
double8字节
char2字节单引号的一个字符
booleantrue/false

再程序中直接写出的整数默认是int类型

再程序中直接写出的小数默认是double类型

原始类型之间的数据类型转换

  • 隐式类型转换(自动)
  • 整型数据可以直接保存到浮点型中

占用字节小的数据类型的变量,可以直接保持到占用字节大数据类型的变量中

short s=123;
int i=s;
  • 显示类型转换

占用字节大的数据类型的变量,默认无法保持到占用字节小的数据类型的变量中,

如果要强制保存,需要强制类型转换。

语法:(目标类型)带转换的变量

int num=123;
byte a=(byte)num;//未超出范围,结果无误
byte a=(byte)128;//超出范围,溢出-128

引用类型

  • 接口
  • 数组

变量

在内存中的一块数据。由于这块区域数据可以发生变化,所以称为变量。

内存中的变量,相当于酒店中的房间。房间的类型就是变量的类型,房间的房号就是变量的名称,房间中住的人就是变量的值。

定义变量,就是在内存中申请一块想要数据类型的空间,并对其命名的过程。

定义变量

语法:数据类型 变量名;

如果要同时定义多个相同类型的变量,可以写作做: 数据类型 变量名1, 变量名2.。。;

//年龄
int age=18;
//年月日
int year;
int month;
int day;
int a,b,c;
//利率
double interestRate;
//电话号码
String phoneNumber;

给变量赋值

语法:变量名 = 值;

int i;
i=10;

变量初始化

语法:数据类型 变量名 = 值;

如果在定义变量的时候能确定其中保存的数据,可以直接在定义变量的时候赋值。

将定义变量和给变量赋值

int i =19;

变量注意事项

  • 在一对大括号中变量只能出现一次

  • 给变量赋值是,赋值符号“=”左边通常是一个变量名,右边可以是一个具体值也可以是另一个赋了值的变量名(不超出其范围),再可以是一个表达式(不超出其范围)。

  • 如果同时定义多个类型系统的变量,可以只写一个数据类型

  • 必须以字母、下划线、或者美元符$开头;以美元符$ 开头命名的变量虽然能够编译通过但是不建议使用;

  • 中文也可以作为命名开头且编译也能通过,但是不建议使用。

  • 除开头外后面的部分可以有字母、下划线、美元符$以及数字组成;

  • 虽然变量名不限制长度,但能表达清楚命名的含义即可;

  • 变量名不可以和java的关键字冲突;

  • 再命名中大小写是又区别的,即使由同一个单词命名但是有个别字母的大小写的区别,产生的就是两个不同的变量。

int a=1,b=2,c=3,d=4,e=5,f=6;

作业

定义变量表示一个小写字母,输出它的大写形式

如定义char word=‘q’,输出Q

import java.util.Scanner;

public class Work01 {
    public static void main(String[] args) {
        System.out.print("请输入一个小写字母:");
        Scanner scanner = new Scanner(System.in);
        String b = scanner.next();
        char c = b.charAt(0);
        System.out.println((char) (c-32));

    }
}

控制台输入圆的半径,计算圆的周长和面积并输出

如输入2,输出周长:xxxx,面积:xxxx

Scanner scanner = new Scanner(System.in);
        System.out.print("请输入输入圆的半径:");
        int a = scanner.nextInt();
        System.out.println("周长为:"+Math.PI*2*a+"面积为:"+a*a*Math.PI);

控制台输入3个数,输出最大值、最小值、总和和平均值

如输入1,2,2,输出最大为2,最小为1,总和为5,评价为1.7

Scanner scanner = new Scanner(System.in);
        System.out.print("请输入第一个数:");
        int a = scanner.nextInt();
        System.out.print("请输入第二个数:");
        int b = scanner.nextInt();
        System.out.print("请输入第三个数:");
        int c = scanner.nextInt();
        int max = a > b ? a:b;
        max = max > c ? max: c;
        int min = a > b ? b:a;
        min = min > c ? c: min;
        int sum=a+b+c;
        float svg=(float) sum/3;
        System.out.println("Max:"+max+"min:"+min+"sum:"+sum+"svg:"+svg);

控制台输入1个4位数,输出所有数之和

如输入3257,输出17

Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个四位数:");
        int a = scanner.nextInt();
        int ge = a%10;
        int shi = a/10%10;
        int bai = a/100%10;
        int qian = a/1000;
        System.out.println(ge+shi+bai+qian);

控制台输入金额,根据金额输出吃什么

如输入10,输出吃小面

 Scanner scanner = new Scanner(System.in);
        System.out.println("小面10¥;抄手11¥;饺子12¥;炒饭13¥");
        System.out.println("您想要吃什么呢?");
        String a = scanner.next();
        if (a.equals("小面")) {
            System.out.println("收费10¥");
        } else if (a.equals("抄手")) {
            System.out.println("收费11¥");
        } else if (a.equals("饺子")){
            System.out.println("收费12¥");
        } else if (a.equals("炒饭")){
            System.out.println("收费13¥");
        }

用空格切分字符串并输出

Scanner scanner = new Scanner(System.in);
        System.out.print("请输入输入:");
        String a = scanner.nextLine();
        String [] arr = a.split("\\s+");
        System.out.println(arr.toString());
        for(String ss : arr){
            System.out.println(ss);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值