华清远见重庆中心—JAVA基础阶段个人总结

本文是作者对Java基础阶段的学习总结,涵盖了Java的起源、流行原因、安装配置、基本语法、数据类型、运算符、条件语句、循环语句和数组等内容。特别强调了Java的跨平台特性、面向对象性质以及JVM的重要性。
摘要由CSDN通过智能技术生成

目录

Java概述

简述:

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

Java 为什么流行?

Java的安装和环境搭建

第一个Java程序

Java代码中的注意事项

编程语言的命名规则

驼峰命名法

帕斯卡命名法

Java中的标识符

Java中的数据类型

原始类型

引用类型

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

隐式类型转换(自动类型转换)

变量

定义变量

变量赋值

变量初始化

运算符

算术运算符

关系运算符

逻辑运算符

赋值、复合赋值运算符

自增、自减运算符

条件运算符

运算符的优先级

条件语句

if语句

switch语句

循环语句

while

do-while

for

循环控制(比较重要)

循环嵌套

应用例子:

循环总结

数组

数组的定义

数组的初始化

数组的取值和赋值

数组特点

通常使用增强for循环遍历数组

穷举法


Java概述

简述:

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

1990 年, SUN 公司 推出了 “Green 计划 ,由 James Gosling 领导设计了一门叫做 Oak 的语言,为了实现智能设备,但并未发展成功,但这门语言留了下来。
1990 年,由于互联网的流行, Oak 语言经过改造,成为了现在的 Java 。所以, Oak 就是 Java 语言的前 身。

Java8、Java11、Java17是LTS版。现在如今我们主要使用Java8

Java 为什么流行?

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

Java是一门跨平台、"半解释半编译"面向对象语言。

Java 有很多优点,尤其是这几点:
  1. 简单
  2. 安全
  3. 开源
  4. 多线程
  5. 半解释半编译
  6. 面向对象
  • Java由于虚拟机JVM(Java Virtual Machine称为Java虚拟机。它用于解释Java的字节码文件。)的存在,所以可以跨平台运行
JDK JRE
JDK 全称 Java 开发工具包 Java Development Kit 。包含了 JRE Java 的调试、编译等工具。
JRE 全称 Java 运行环境 Java Runtime Environment。包含了 JVM(核心)java 运行工具等。如图所示

Java的安装和环境搭建

1. 下载 JDK 安装
Oracle 官网下载

 注意每个人电脑处理器字长,主流64位,选择X64,有些是32位选择X86

2. 配置计算机的环境变量( 没有搭建环境无法使用编程软件不光Java很多都需要搭建环境
新建系统变量
此电脑 -- 右键属性 -- 高级系统设置 -- 环境变量
网上很多配置搭建环境变量步骤方法这里不讲述

第一个Java程序

我们这里主要用主流编译软件IDEA进行Java编程
为什么要用IDEA
Java 程序的运行流程
编辑 .java 源文件 --->javac 命令编译 ---> 生成 .class 字节码文件 --->java 命令由 JVM 解释运行

编译软件直接给我编译边解释运行,不用我们手动编译

 新建new java class Hello

Java代码中的注意事项

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

编程语言的命名规则

驼峰命名法

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

帕斯卡命名法

所有单词首字母全部大写
StuendClass EmpName

Java中的标识符

阿里巴巴 Java 开发手册 _w3cschool
Java 中的类名、方法名和变量名统称为标识符。
类名使用帕斯卡命名法
方法名和变量名 使用驼峰命名法
命名时做到 " 见名知意 "
这些要求不是强制的,属于开发人员约定俗成的内容
Java 中标识符的命名规则
标识符使用字母、数字、下划线和 $ 组成
不能以数字开头
不能使用Java中的关键字(保留字)
这些要求是强制的,如果不遵循,无法通过编译。
标准命名举例
类名
Test  、 Person 、 Animal 、Cat、 UserController、StudentService  等等
变量名
age、 lastName 、firstName
方法名
login() 、findEmpById(int id)
常量
COUNTRY_NAME

Java中的数据类型

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

原始类型

整型:
byte 字节
short 短整型
int 整型:
long 长整型,赋值时 在数字后加l或L
浮点型:
float 单精度浮点型,赋值时在 数字后加f或F
double 双精度浮点型
字符型:
char ,赋值时可以是单引号引起来的字符或一个数字,这是数字是 ascii 中的数字或者是一个
布尔型:
boolean
类型名
所占
字节
大小
范围
byte                    1字节 - 128~127  (最小)
short                  2字节 ~32768~32767
int                     4字节 -2147483648~2147483647
long                  8字节 -2^63至 2^63-1
float                   4字节
double               8字节  (大)
char                         2字节
用单引号引起来的一个字符。在 java 中,不管是数字还是英文还是汉字, char都占用2个字节 。因为 Java 编译器默认使用 Unicode 编码。
boolean                 true/flase
在程序中写出的整数,默认是 int 类型 写出的小数,默认是double类型

引用类型

  • 数组
  • 接口

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

隐式类型转换(自动类型转换)

占用 字节小的数据类型的变量,可以直接保存到占用字节大的数据类型的变量中
显式类型转换 ( 强制类型转换 )
用字节大的数据类型的变量, 默认无法保存到占用字节小的数据类型的变量中
如果要强制保存,需要经过类型转换
语法: ( 目标类型 ) 待转化的变量
short s = 123 ;
int i = s ;
//s是short类型,占2个字节,i是int类型,占4个字节
int num = 123 ;
//byte b=num;/ /直接无法赋值
byte b = ( byte ) num ; // 强制转换为 byte 类型
// 如果待转化的变量中的数据能正常保存到转换的目标变量中,结果无误。
// 如果超出目标变量的范围,会造成数据溢出
byte n = ( byte ) 128 ; //byte 最大值为 127, 强制将 128 赋值给 byte 时,真正保存的是 byte 的最小值 -128

变量

保存数据的内存区域,其中的数据可以变化

定义变量

数据类型 变量名;

变量赋值

变量名=值;

=右边的值有默认的数据类型。

整数默认为int,小数默认double类型。

变量初始化

数据类型 变量名 = 值;

变量需要定义、赋值后才能使用。

int i;
System.out.println(i);

运算符

算术运算符

//+ - * / %
//+两端都是数值是当做相加,有一端是字符串时当做拼接
//两个整数相除/,结果只保留整数部分。10/3=3;

关系运算符

//> < >= <= == !=
//关系运算的结果都是布尔型  

逻辑运算符

//&& || !
//&&和||符号两端是两个表达式
//&&和||称为短路运算符,当第一个表达式能确定结果时,不再判断第二个表达式    

赋值、复合赋值运算符

//= += -= *= /= %=
//给整型变量赋值,=右边可以是整型或字符型
//给字符型变量赋值,=右边通常是一个单引号引起来的字符,也可以是一个整数或转义字符
//a*=b+c      相当于    a=a*(b+c)

自增、自减运算符

//++ --
//非单独成行,符号在前,先+1或-1,再使用
//非单独成行,符号在后,先使用,再+1或-1

条件运算符

//表达式1?表达式2:表达式3
//双分支语句,先执行表达式1,结果为true时执行表达式2,结果为false时执行表达式3

运算符的优先级

小括号>>单目运算符(!、++、--)>>算术>>关系>>逻辑>>条件>>赋值

int year=2000;
String res=(year%4==0&&year%100!=0)||year%400==0?"闰年":"平年";

一个表达式中,如果有不同的数据类型参与运算,最终的结果以表达式中字节最大的数据类型为准。

int a=12;
double b=3;
double res=a/b;

double res=10.0/4;
double res=10/4.0;
double res=(double)10/4;

条件语句

if语句

小括号中都是一个表达式,最终结果为布尔型

  • 单分支

    if(){
    
    }
  • 双分支

    if(){
    
    }else{
    
    }
  • 多分支

    if(){
    
    }else if(){
    
    }else if(){
    
    }else{
    
    }
  • 嵌套

    if(){
        if(){
    
        }
    }else{
        if(){
    
        }
    }

在方法if语句中出现return,就不再执行后续的代码

如果方法的返回值是void,return后无需添加值,如果不是void,return后必须添加值

可以将if嵌套改造为if-return。

public static void main(String [] args){
    if(2>1){
        return;//提前结束main方法
    }
    System.out.println("程序结束");//这句话不会输出
}

public int chu(int a,int b){
    if(b==0){
        System.out.println("0不能作为除数");
        return 0;
    }
    return a/b;
}

switch语句

switch(非long整型、char、String、enum){
    case 可能的值:
        break;
    case 可能的值:
        break;
    case 可能的值:
        break;
    case 可能的值:
        break;
    default:
        break;
}

可以不写break,会继续执行后续case后的内容。

如果能例举出一件事情的分支,建议使用swtich语句。

比如打印菜单,功能选项,日期判断等

如果一件事情的分支是范围,只能使用if语句。

循环语句

while

while(循环条件){
    循环体
}

do-while

do{
    循环体
}while(循环条件);

for

for(定义循环变量;循环条件;更新循环变量){
    循环体
}

while和for循环如果条件一开始就不成立,一次都不执行。do-while循环会至少执行一次后再做判断。

循环条件都是布尔值

当已知循环次数时,建议使用for循环;未知循环次数时,建议使用while循环;先执行一次后再判断时使用do-while循环。

循环控制(比较重要)

  • break终止整个循环
    • 如果循环中有swtich语句,switch中的break只能终止switch,不能终止循环。
  • continue停止本次循环,进行下次循环。(不再执行continue后续的代码)
  • break和continue通常配置if语句使用

循环嵌套

在循环中继续循环。外层循环执行一次,内层循环执行一轮。

// * 打印矩形
// 将循环一行这件事再循环 5
for ( int n = 1 ; n <= 5 ; n ++ ) {
// 循环打印一行
for ( int i = 1 ; i <= 10 ; i ++ ) {
System . out . print ( "*" );
}
System . out . println ();
}

应用例子:

//用*打印矩形
//将循环一行这件事再循环5次
for (int n = 1; n <= 5; n++) {
//循环打印一行
for (int i = 1; i <= 10; i++) {
System.out.print("*");
}
System.out.println();
}

注意循环嵌套不要嵌套太多层。

循环总结

如果已知循环次数,推荐使用 for 循环。如遍历数组、集合等。
如果未知循环次数,推荐使用 while 循环。
while 循环和 for 循环可以相互转换
do-while循环至少执行一次 for 循环和 while 循环有可能一次都不执行

数组

一组类型相同的数据有序集合。在内存中是一块连续的区域

每个数据都称为元素,每个元素有自己的唯一索引,从0计数

数组一旦定义后,其数据类型和大小不可改变,无法获取当前数组中的元素数量。

数组的定义

数据类型[ ] 数组名 = new 数据类型[数组大小];

数组的初始化

  • 数据类型[] 数组名 = new 数据类型[]{元素1,元素2...};
  • 数据类型[] 数组名 = {元素1,元素2...};

数组的取值和赋值

通过"数组名[下标]"访问。

String[] nameList={"admin","qwe","ez"};
//赋值
nameList[1]="小是明";
//取值
String name=nameList[0];
System.out.println(name);

数组特点

  • 数组可以通过“数组名.length”获取其长度

  • 数组定义后,如果没有对其赋值,会有默认值

    • 整型默认0,浮点型默认0.0,字符默认空白字符,布尔型默认false,引用类型默认null
  • 通常使用增强for循环遍历数组

  • String[] nameList={"admin","qwe","ez"};
    for(String name : nameList){
        System.out.println(name);
    }

穷举法

将所有可能的情况一一例举出来。

          //鸡兔同笼 笼子里有若干鸡和兔,头一共35,腿一共94,鸡兔各几只?
        for (int ji = 0; ji <= 35; ji++) {
            for (int tu = 0; tu <= 35; tu++) {
                if (ji + tu == 35 && 2 * ji + 4 * tu == 94) {
                    System.out.println("鸡:" + ji + "兔:" + tu);
                }
            }
        }
         //百元买百蛋 花够100元买够100个蛋 鸡蛋3个1元 鸭蛋1个3元 鹅蛋1个5元
        for (int jd = 0; jd <= 100; jd++) {
            for (int yd = 0; yd <= 100; yd++) {
                for (int ed = 0; ed <= 100; ed++) {
         //整数间相除为整数,这里鸡蛋的价格需要用浮点数表示
                    if (jd + ed + yd == 100 && 3 * yd + 5 * ed + jd / 3.0 == 100) {
                        System.out.println("鸡蛋:" + jd + "鸭蛋:" + yd + "鹅蛋:" + ed);
                    }
                }
            }
        }

综上所述以上是一些比较重要的笔记+总结,Java基础阶段很多需要积累和练习,很多不懂的地方,前期配置环境变量等,报错等感谢同学、老师期间帮忙解决一切遇到大问题 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值