JAVA 学习记录--Week1

本文介绍了Java的基本概念,如Java SE、Java ME和Java EE的区别,JDK、JRE和JVM的关系,以及如何配置Java环境变量。涵盖了变量、数据类型、运算符、键盘录入、选择结构语句和基本的逻辑运算。

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

基本dos指令

Java相关

诞生于1995, 詹姆斯高斯林

  • javaSE--针对桌面应用程序和商务应用程序的解决方案
  • JavaME--针对嵌入式设备的一种解决方案; 移动端 Android
  • JavaEE--针对企业开发环境的一种解决方案;

 

Java环境搭建及path变量配置

JVM--Java虚拟机
JRE--jvm及Java的核心类库
JDK--jre及工具库

JDK,JRE,JVM三者之间的关系

三者之间的关系: Jdk > Jre >Jvm,

JVM: Java虚拟机,是一个假象计算机,有自己的内存分配以及自己的存储方式,所有 的java程序要被  Jvm进行编译和运行;

JRE: Java 运行环境 ,里面包含jvm以及运行时的核心类库(lib目录---rt.jar包)

JDK: Java 开发工具包(包含了jre以及一些工具类库---lib--->tools.jar) 举例:Jdk提供了一个类:Math:数学运算的工具类

在JDK中

  • bin目录:
    javac.exe 编译
    java.exe 运行

    javadoc.exe---解析 文档注释--产生文档说明书(面向对象中使用)
    logging.properties---日志配置文件
    rt.jar--运行时的核心类库

  • lib目录:
    tools.jar--工具类库

  • src.zip:
    源码文件, 其中包含Java核心类及扩展类的源码

配置环境变量

如果不配置系统环境变量的中的path变量,需要每一次编写java文件都需要在 jdk安装目录的bin目录去操作,以后不能将所有的.java文件都存储在jdk安装目录的bin 目录,如果有的java文件,删除的时候导致将bin目录里面的exe文件不小心删除,jdk软件 出问题了;
目的: 就是为了在其他目录下也能javac进行java文件的编译,使用java进行java类的运行;

两种配置方式

方式1:
复制jdk安装目录的bin目录的路径,直接将路径放在系统变量--->path 中

  • 弊端1:当jdk升级,需要手动更改path的路径,可能导致误删了其他系统变量
  • 弊端2:后期会使用tomcat服务器,使用java编写的,启动的时候会在系统变量 寻找一个变量JAVA_HOME,启动直接闪退(启动失败了)

方式2:
直接系统变量---->新建一个变量:JAVA_HOME 变量值:Jdk的安装目录 path:新建一个路径 %JAVA_HOME%\bin

  • 好处:
    以后不需要手动更改path,防止数据被误删;
    jdk升级,只需要改动 JAVA_HOME的路径;

关键字 ---特定含义的单词(全小写)
class/public/static/void

标识符(重点)
1.命名
对"类 接口"---大驼峰命名法

对"变量及方法"---小驼峰命名法
对"常量"

标识符的组成规则

1)可以是26个英文字母(大小写都可以)

2)可以是0-9的数字

3)可以是$或者_下划线

4)Java定义标识符:严格区分大小写

注意事项:

  • 定义标识符不能数字开头
  • 不能是Java关键字
  • 起名字---见名知意

常量

  • 字面值常量
    (1) 字符串常量   
  • (2) 字符常量

  • 注意事项:
    ① 当字符单独使用时---代表对应字符'a' 'A' '0'

    ②当字符参与运算,键盘每一键'字符
    ---找ASCII码表

    'a'---97 小写
    'A'---65 大写
    '0'---48 常数

  • 自定义常量---跟一个关键字final
  • 整数常量--还包含进制
  • 小数常量
  • 布尔常量
  • 空常量

变量及数据类型_类型转换
变量: 程序执行过程中,值一直发生改变的量

变量三要素
变量限定----数据类型
变量名----遵循标识符的规范要求
初始化值----和数据类型保持一致

数据类型划分

  • 基本类型

四类八种

第一类----整数类型: byte, short, int(默认), long
第二类----浮点类型: float, double
第三类----字符类型: char
第四类----boolean 不参与计算

  • 引用类型(面向对象中): 数组 类 接口

类型转换

1. Java隐式转换(Java数据默认提升)

byte short char 三者之间不互相转换,一旦参与运算时, 优先提升为int类型

  • byte short char---->int(考点)--->long--->float

int a = 3 ;
byte b = 4 ;
int result = a + b ;

System.out.println("result:"+result) ;

2. Java显式转换(强制转换)

不仅适用于基本类型, 是适用于引用数据类型(面向对象中的"多态")

  • 将大的类型范围---->转换为小的类型范围

格式:
目标数据类型 变量名 = (目标数据类型)(表达式或初始化值)

int a = 3 ;
byte b = 4 ;
byte result = (byte)(a+b) ;

System.out.println("result:"+reuslt) ;

运算符

1.算术运算符
① 基本算术运算符:
+ ,-, *, /, %(模:求余数)

注意事项:
/ 是取整
% 是求余数的
出现小数, 分子分母上给乘以double类型的值

② 扩展的算术运算符: ++, --
情况1: 单独使用:比较简单
无论++或者--在数据的前面还是后面,都是对这个变量本身自增1或者自减1

情况2 : 参与运算使用(重点)

1 ) 如果++或者--在数据的前面,先进行自增或者自减,然后参与运算;
2 ) 如果++或者--在数据的后面,先运算,然后进行自增或者自减

2.赋值运算符
基本赋值运算符 =
扩值的赋值运算符 +=, -=, * =, /=, %=

在扩展的赋值运算符里面,
+=,-=,*=,/=,%= 隐藏了强制类型转换

3.比较运算符
<, >, >=, <=, ==, !=(不等于)

无论这些符号连接的表达式是简单的还是复杂, 结果应该布尔类型, true/false

表达式:
这些运算符号---连接起来多个变量

注意:
== 不能写成 =

4.逻辑运算符
在实际开发中,针对某些业务场景
(登录/注册,判断用户是否登录成功了或者判断用户是否注册成功)进行业务逻辑判断;

  • 基本的逻辑运算符
    ①逻辑单与& ----并列关系
    / 特点:有false,则false;
    ②逻辑单或| ----或的关系
    / 特点:有true,则true
    ③逻辑异或^
    /特点:
    相同则为false,不同则为true
    简单记忆:男女关系

    男女 女男 true
    女女 男男 false

    ④逻辑非!
    非true,则false;非false,则true;偶数给非是它本身

  • 逻辑运算符---扩展符号
    (1) 逻辑双与 && ----并列关系, 必须同时满足才成立
    (2)逻辑双或 || ---- 或的关系:有一个满足条件 成立;

  • 逻辑双与&& 和 逻辑单与&的区别?

共同点: 有false则false
不同点: 逻辑双与&&具有短路效果,
当&&连接的表达式左边有false, 则右边不执行了

实际开发中: &&以及||使用最多,他们可以提高程序的执行效率;
逻辑双或||

|| 连接的表达式左边true,右边不执行了(具有短路效果),有true,则true

5.三元运算符(三目运算符)

  • 格式:

    (简单或者复杂的表达式)? 执行成立的结果:执行不成立的结果;

  • 执行流程:
    1)先判断表达式是true还是false, 如果是true, 执行成立的 结果;
    2)如果是false, 执行不成立的结果;

进制

 

键盘录入数据

导包---创建键盘录入对象---提示并录入数据---固定写法

======

import java.util.Scanner ;

class ScannerDemo{
public static void main(String[ ] args){
Scanner sc = new Scanner(System.in) ;

System.out.println("请您输入一个数据:") ;
int number = sc.nextInt() ;
System.out.println("您输入的数据是:"+number) ;

流程控制语句

①选择结构语句
if语句(三类)
Type1
第一种格式的执行流程

                if(表达式){
                        
                        语句;
                }

1)判断表达式是否成立,如果成立,则执行语句,否则不执行;

注意事项:
if( )后面不能带分号
记住:有分号的地方就不能{,有{的地方,不能有分号;
Type2

        第二种格式
                if(表达式){
                        
                        语句1 ...;
                }else{
                        语句2...;
                }

执行流程:
1)首先判断表达式是否成立,如果成立,则执行语句1...
2)如果不成立,执行语句2...
需求:
键盘录入两个数据,比较两个数据最大值;

Type3

if...else...流程控制语句

                   if(表达式){
                        语句1;     这里面的语句可能是具体的变量携带的结果或者是输出语句;
                        
                }else{
                        语句2;
                }
  • if...else...和三元运算符的区别?(重点)

区别:

共同点:都是选择一个结果;(带有选择判断思想)

不同点:
1)格式不同

三元运算符---是一个运算符 ---应该要出来具体的结果值

(表达式)?执行true的结果:执行false的结果

2)范围不同
if...else...大于三元运算符:
三元运算符的能够实现,一定能够使用if...else...实现
但是,if...else...不一定能够使用三元

  • 引入 if...else...嵌套

      if(表达式1){
                    if(表达式2){
                            
                            语句1;
                    }else{
                            语句2;
                    }
            
      }eles{
            if(表达式3){
                            
                            语句3...;
                    }else{
                            语句4...;
                    }
            
      }
    

需求:
键盘录入三个数据(int类型),获取三个数据最大值;

顺序结构语句:

从进入到程序的入口之后,代码从上而下依次加载(最简单的一种结构)

举例: 从main进来之后,直接去输出,依次输出...
System.exit(0) ; -----表示 终止jvm

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值