Java 基础语法学习笔记

news/2024/10/18 9:19:56/

目录

一、Java语言概述

1.1 Java 的出现

1.2 Java的主要特性

1.3 Java语言的特点

1.4 Java语言的核心机制

1.5 Java语言的环境搭建

 二、第一个Java程序

2.1 需要注意的问题

2.2 注释(comment)

 2.3 注意点:

2.4 Java API 的文档

2.5 第一个 Java 程序

三、Java基本语法

3.1  Java中的名称命名规范

 3.2 关键字(keyword)和保留字

 3.3 变量的使用

3.4 数据类型

​编辑

3.4.1 整数类型

3.4.2 浮点型变量

 3.4.3 字符类型

3.4.4 布尔类型

3.4.5 基本数据类型转换

3.4.6 字符串类型

​编辑

 3.4.7 强制类型转换

3.4.8 二进制

​编辑

四、流程控制语句

4.1 顺序结构

4.2 分支结构

4.3 循环结构 

4.3.1 for循环

 4.3.2 while 循环

 4.3.3 do...while循环

 4.3.4 练习题

 4.3.5 嵌套循环

4.3.6 break的使用

4.3.7 continue的使用

4.3.8 return的使用

​4.4 注意事项


一、Java语言概述

1.1 Java 的出现

Java之父 James Gosling,发明Java的原因是:C 语言缺少垃圾回收系统和可移植的安全性、分布程序设计和多线程功能等。

Java 是类C语言,Java 是一个纯粹的面向对象的程序设计语言。Java 舍弃了C语言中容易引起错误的指针(Java 中以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。JDK 1.5又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱。

1.2 Java的主要特性

Java语言是易学的

Java语言是强制面向对象的

Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)

Java语言是分布式的

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(Java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

Java语言是健壮的

Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。(Java没有指针)

Java语言是安全的

Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查。

Java语言是体系结构中立的

Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。

Java语言是解释型的

Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统的解释器中运行

Java是性能略高的

Java语言是原生支持多线程的 

在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建

1.3 Java语言的特点

面向对象

  • 两个基本概念:类、对象
  • 三大特性:封装、继承、多态

健壮性

  • 吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制

跨平台性 

  • 跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once,Run Anywhere”
  • 原理:只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。

1.4 Java语言的核心机制

Java虚拟机(Java Virtual Machine)

  • JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。
  • 对不同的平台,有不同的虚拟机。
  • 只有某平台提供了对应的java虚拟机,java程序才可在此平台运行
  • Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”
  • .java——》(编译).class——》执行
  • 硬件——》操作系统——》JVM——》字节码文件——》用户User

垃圾收集机制(Garbage Collection)

  • 不再使用的内存空间以回收——垃圾回收
    • 在C/C++等语言中,由程序员负责回收无用内存
    • Java语言消除了程序员回收无用内存空间的责任,它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
  • 垃圾回收在Java程序运行过程中自动运行,程序员无法精确控制和干预
  • Java程序还会出现内存泄漏和内存溢出问题

1.5 Java语言的环境搭建

JDK(Java Development Kit  Java开发工具包)

JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用再单独安装JRE了

  • JDK中的开发工具有:编译工具(javac.exe)、打包工具(jar.exe)等

JRE(JavaRutime Environment  Java运行环境)

JRE包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可 

使用JDK的开发工具完成的java程序,交给JRE去运行 

JDK、JRE、JVM的关系是什么?

  • JDK = JRE + 开发工具集(例如Javac编译工具等)
  • JRE = JVM + JavaSE标准类库

 二、第一个Java程序

2.1 需要注意的问题

  • 类文件名写错,当文件名与类名不一致时,要小心
  • 类文件不在当前路径下,或者不再classpath指定路径下
  • 声明为public的类应与文件名一致,否则编译失败
  • 编译失败时,注意错误出现的行数,再到源代码中指定位置改错

2.2 注释(comment)

用于注解说明解释程序的文字就是注释

Java中的注释类型

  • 单行注释
  • 多行注释
  • 文档注释(java特有)

注释的作用:

  • 提高了代码的阅读性;调试程序的重要方法

文档注释

 2.3 注意点:

  • Java语言严格区分大小写
  • 一个源文件中最多只能有一个public类。其他类的个数不限,如果源文件包含一个public类,则文件名必须按该类名命名。

2.4 Java API 的文档

  • API(Application Programming Interface,应用程序编程接口)是Java提供的基本编程接口
  • Java语言提供了大量的基础类,因此Oracle也为这些基础类提供了相应的API文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。
  • 下载API

2.5 第一个 Java 程序

public class HelloWorld {// 程序的入口public static void main(String[] args) {// 打印 HelloWorldSystem.out.println("HelloWorld");}}

三、Java基本语法

3.1  Java中的名称命名规范

 标识符(identifier)

 3.2 关键字(keyword)和保留字

 3.3 变量的使用

3.4 数据类型

3.4.1 整数类型

 整型变量的声明、赋值、使用

public class UseOfVariables {public static void main(String[] args) {// 先声明,后赋值int number1;number1 = 10;// 声明并直接赋值int number2 = 20;int number3 = number1 + number2;System.out.println("Number3=" + number3);}}

3.4.2 浮点型变量

 3.4.3 字符类型

3.4.4 布尔类型

3.4.5 基本数据类型转换

3.4.6 字符串类型


public class StringTest {public static void main(String[] args) {int no = 10;// 字符串类型声明并赋值String str = "abcdef";String str1 = str + "xyz" + no;System.out.println("str1=" + str1);str1 += "123";System.out.println("str1=" + str1);// 声明并赋值字符类型变量 cchar c = '国';// 声明定义并赋值 浮点数 double 类型 变量 pidouble pi = 3.14;str1 += pi;// 声明并定义布尔类型变量 b,赋值 为 falseboolean b = false;str1 += b;System.out.println("str1=" + str1);str1 += c;System.out.println("str1=" + str1);}}

 3.4.7 强制类型转换

加 小括号

3.4.8 二进制

四、流程控制语句

4.1 顺序结构

程序从上到下逐行执行,中间没有任何判断和跳转

4.2 分支结构

  • 根据条件,选择性地执行某段代码
  • 有 if...else 和 switch-case 两种分支语句

 


public class IfelseTest {public static void main(String[] args) {int age = 75;if(age<0) {System.out.println("不可能");} else if(age>250) {System.out.println("是个妖怪");} else {System.out.println("人家芳龄" + age + ",马马虎虎啦");}}}

switch-case

public class SwitchCaseTest {public static void main(String[] args) {int i = 1;switch (i) {case 0:System.out.println("zero");break;case 1:System.out.println("one");break;default:System.out.println("default");break;}}}

public class SwitchCaseTestSeason {public static void main(String[] args) {String season = "summer";switch (season) {case "spring":System.out.println("春暖花开");break;case "summer":System.out.println("夏日炎炎");break;case "autumn":System.out.println("秋高气爽");break;case "winter":System.out.println("冬雪皑皑");break;default:System.out.println("季节输入有误!");break;}}
}

 

 

4.3 循环结构 

  • 根据循环条件,重复性的执行某段代码
  • 有while、do...while、for三种循环语句
  • 注意:JDK1.5提供了foreach循环,方便的遍历集合、数组元素

4.3.1 for循环

package unitOne01;public class ForCirculate {public static void main(String[] args) {int result = 0;for(int i = 1; i <= 100; i++) {result += i;}System.out.println("result="+ result);}}

 4.3.2 while 循环

package unitOne01;public class WhileLoop {public static void main(String[] args) {int result = 0;int i = 1;while (i <= 100) {result += i;i++;}System.out.println("result="+ result);}
}

 4.3.3 do...while循环

package unitOne01;public class DoWhileLoop {public static void main(String[] args) {// 声明并定义两个变量 result、i,并给它们赋初值 result = 0, i = 1int result = 0, i = 1;do {result += i;i++;} while (i <= 100);System.out.println("result=" + result);}
}

 4.3.4 练习题

package unitOne01;import java.util.Scanner;
/** 从键盘读入个数不确定的整数,* 并判断读入的正数和负数的个数,输入为0时结束程序。*/public class PositiveNegativeLoopTest {public static void main(String[] args) {// 键盘输入的方法 ScannerScanner scanner = new Scanner(System.in);// 统计正数的个数int positiveNumber = 0;// 统计负数的个数int negativeNumber = 0;for(;;) { // while(true)System.out.println("请输入一个整数:");System.out.println("输入 0 结束游戏!");int z = scanner.nextInt();if(z>0) {positiveNumber++;} else if(z<0) {negativeNumber++;} else {break;}}System.out.println("正数的个数为:"+ positiveNumber);System.out.println("负数的个数为:"+ negativeNumber);}
}

 4.3.5 嵌套循环

4.3.6 break的使用

package unitOne01;public class UseBreakStatement {public static void main(String[] args) {for (int i = 0; i < 10; i++) {if (i == 3) {break;	}System.out.println("i="+ i);}System.out.println("Game Over!");}
}

4.3.7 continue的使用

 

package unitOne01;public class UseContinueStatement {public static void main(String[] args) {for (int i = 0; i < 10; i++) {if (i == 3) {continue;}System.out.println("i="+ i);}System.out.println("游戏结束");}
}

4.3.8 return的使用

 4.4 注意事项


http://www.ppmy.cn/news/86562.html

相关文章

【Leetcode60天带刷】day02—— 977.有序数组的平方、209.长度最小的子数组、 59.螺旋矩阵II

题目&#xff1a;997.有序数组的平方 Leetcode原题链接&#xff1a;997.有序数组的平方——力扣 思考历程与知识点&#xff1a; 题目的意思很简单&#xff0c;就是把每个数的平方&#xff0c;按从小到大的顺序排个序&#xff0c;再输出出来。 第一想法是先每个数平方一遍&a…

关系数据库设计理论

关系数据库设计理论 目录 关系数据库设计理论是什么函数依赖完全函数依赖(Full Functional Dependency)部分函数依赖(Partial Functional Dependency)传递函数依赖(Transitive Functional Dependency) 异常插入异常(Insertion Anomaly)更新异常(Update Anomaly)删除异常(Deleti…

03 面向对象(多态,接口)

如果要求程序员必须在某个类中特定的方法中实现一个特定的功能, 应该如何实现? 使用抽象方法或者使用接口(interface) 抽象方法只能单继承,不能多继承,子类必须使用里面的抽象方法 接口可以多继承,实现类必须重写里面的方法 接口的作用? 接口是一种约定的规范,体现了规范…

设计模式-简单Demo掌握责任链模式

文章目录 1、要点2、Demo3、进阶掌握 参考文章&#xff1a; 基本原理&#xff1a;责任链模式 | 菜鸟教程 (runoob.com) 简单例子&#xff1a;五分钟学设计模式.12.责任链模式_哔哩哔哩_bilibili 阿里巴巴的应用&#xff1a;责任链模式在复杂数据处理场景中的实战 责任链模式&am…

森林大侠

树林里有一棵生了病的大树&#xff0c;无精打采&#xff0c;眉头紧锁&#xff0c;低垂着头&#xff0c;眼睛里不停地落下哀伤的泪水。它的叶子&#xff0c;从枯黄&#xff0c;到枯萎&#xff0c;再到纷纷落下&#xff0c;好像已经生病了很久。 一只啄木鸟正好从树林的上空飞过&…

离散数学_十章-图 ( 2 ):图的术语和几种特殊的图

&#x1f4f7;10.2 图的术语和几种特殊的图 1. 基本术语1.1 邻接&#xff08;相邻&#xff09;1.2 邻居1.3 顶点的度1.4 孤立点1.5 悬挂点例题 2. 握手定理3. 握手定理的推论4. 带有有向边的图的术语4.1 邻接4.2 度——出度 和 入度4.3 例题&#xff1a; 5. 定理&#xff1a;入…

基于redis客户端缓存机制实现本地缓存

文章目录 前言一、本地缓存和分布式缓存二、redis客户端缓存机制1.客户端缓存实现原理普通模式广播模式重定向模式redirect 2.优势和误区3.客户端缓存机制请求流程 三、项目实战1.引入依赖2.redis连接属性配置3.开启客户端缓存4.使用本地缓存5.测试 总结 前言 采用缓存一直是我…

ChatGPT实战100例 - (11) 零成本学习Python

文章目录 ChatGPT实战100例 - (11) 零成本学习Python一、需求与思路二、培训大纲三、开始秀四、Python 简介1、Python 的发展历史2、Python 的特点与优势3、 Python 的应用领域四、 总结ChatGPT实战100例 - (11) 零成本学习Python 一、需求与思路 用ChatGPT列一个培训大纲, …