Java基本数据类型与逻辑控制 - Java基础知识 1

目录

第一个程序

JShell工具

CLASSPATH环境属性

Java基本概念

Java数据类型划分

整型数据

浮点型数据

字符型

布尔型

String字符串

运算符

数学运算符

关系运算符

三目(赋值)运算符

位运算符

Java程序逻辑控制

分支结构

IF分支结构

SWITCH开关语句

循环结构

while循环结构

for循环

循环控制

循环嵌套

方法的定义与使用

方法的重载

方法的递归调用


学习笔记

第一个程序

所有的Java程序的后缀*.Java,建立一个目录保存Java程序。使用EditPlus编写代码。下载安装教程:https://blog.csdn.net/weixin_43184774/article/details/98393253

java第一个程序:HelloWorld.java

public class HelloWorld{
	public static void main(String args[]){
		System.out.println('Hello world !');
	}

}

java程序需要经过两步才能执行:

  • 对源代码程序进行编译:javac HelloWorld.java,会形成HelloWorld.class的字节码文件。

         - JVM进行编译,形成与平台无关的字节码文件(HelloWorld.class)

  • 在JVM上进行程序的解释执行:java HelloWorld,(不需要加后缀)

 

对第一个程序解释:

在java程序开发中最基础的单元是类,所有的程序必须封装在类中。类的定义如下:

[public] class 类名{}

有没有public的区别:

1. “public class 类名{}” : 类名称与文件名称必须保持一致,一个*.java中只允许有一个*.class定义。

2. ”class 类名{}“:可以不一致,但是JVM进行解析过后,形成的文件名称:类名称.class。一个*.java中可以有多个class,编译过后会形成多个*.class文件。

结论:在以后的项目开发中,一个*.java文件最好只有一个 "public calss "。学习例外。类命名每个单词的首字母必须大写。

主方法

Java的主方法是程序执行的起点,必须定义在一个类中。主方法定义如下:

public class 类名{
    public static void main(String args[]){
    //程序
}
}

主方法名字可能很长。主方法所在的类称为主类,统一使用 public class 来定义。

屏幕打印输出

换行:   System.out.println(输出内容)

不换行:System.out.print(输出内容)

JShell工具

Shell(脚本程序),可以运行程序,也可以交由一些文件进行保存。

显然可以直接用核心代码,减少了一些结构化的需求。使用“/exit”退出。

CLASSPATH环境属性

例子:定义CLASSPATH环境属性

SET CLASSPATH=d:\renjava

设置了CLASSPAT后,这样就可以在其它路径下运行,那么:JVM在解释程序时需要得到CLASSPATH的支持。默认情况下,解释的类是从当前目录下加载了文件。

例子:从当前路径加载类的设置

SET CLASSPATH=.

一些时候,安装Java开发程序,会修改默认配置,这时候需要自己又改回来。CLASSPATH是在一个命令下的配置,当关闭命令行时,配置会消失。可以设置为全局属性,直接在系统中追加一个属性信息。方法如下图:

 

面试题:PATH与CLASSPATH的区别?

  • PATH: 是操作系统运行程序的加载路径配置,定所有可执行程序的路径。
  • CLASSPATH: 由JRE提供,用于定义Java程序解释时类加载的路径,默认设置为当前目录加载,通过“SET CLASSPATH=路径”设置。

|- 关系:JVM --> CLASSPATH --->加载字节码文件

 

Java基本概念

注释

注释:是程序开发的一项重要技术,合理的注释可以使项目维护更加方便。

三类形式:

  • 单行注释://
  • 多行注释:/* ..... */
  • 文档注释:/** ... */  文档注释有很多选项,最好用开发工具控制。

标识符与关键字

程序可以看作结构的整合题,java中有不同的结构,如:类、方法、变量名等,不同的结构需要不同的说明。对结构命名由一些单词组成,要有意义。对于Java标识符的组成,由字母、数字、_、$组成,数字不能开头,不能使用关键字。

一般形式:字母开头,数字与下划线辅助。关键词是系统对于一些结构的描述处理。

 

Java数据类型划分

 

Java数据分类:基本数据类型、引用数据类型

 

每一种数据类型都有每种类型的保存范围

整型数据

整型数据类型一共四种:byte、short、int、long。java中任何一个整型常量默认的都是int(只要是整数就是int)。

如果超过int处理范围(数据溢出),超过时会循环。

处理方法:更换数据类型、类型转换

 

对于数据类型范围大的要转换到数据类型范围小的,必须使用强制数据类型转换。对于常量则可以自动适配转换,对于变量格式:

(数据类型)变量名
如:(long)num

byte类型,没有超过byte范围的常量可以自动转换为byte,对于变量只能使用强制转换。

浮点型数据

浮点型数据表示小数,Java中任意一个小数常量对应的类型是double。定义格式:

所有类型的转型是由范围小转化为大类型。默认的类型是double,可以定义范围较小的float变量,赋值时候就必须进行强制类型的转换。定义如下:

注意:整型不保存小数点 int 的 10/4=2

字符型

定义如下:

在任何的编程语言中,字符可以和int类型相互转换,即使用int可以获取字符对应的系统编码。

对应:

  • “大写字母范围”:‘A’(65) ~ 'Z'(90);
  • "小写字母范围":‘a’(97) ~ 'b'(122);
  • "数字范围":‘0’(48)~ ‘9’(57);

大写与小写字母相差32,可以通过这种方式进行大小写字母转换,如下

这些操作与C语言一致,但是char类型可以保存中文数据。如下:

Java可以使用中文保存的原因:Java使用Unicode的16进制编码,特点是可以包含任意文章的内容(对汉字处理时,需要正常的切分字,不需要判断是否为正常字,如:word换行)。

布尔型

表示逻辑处理的运算结果,范围:true、false。定义如下:

一些编程语言没使用布尔而使用0、1,Java不这样做。

String字符串

任何编程语言都没有提供字符串这种基本数据类型,但都提供字符串的相应描述。java中字符串较为特殊,可以使用像普通变量那样使用赋值的方式进行字符串描述,使用“”描述,双引号定义的是字符串。如下:

 

可以使用“+”进行字符串连接,如下:

“+”由有两种描述:数字的加,字符串的加。

结果:10.120

原因数据范围大的与数据范围小的进行运算时,会自动向大的转换。所有与String运算时,所有类型无条件向大的类型转换。

结果:30.1

描述字符串时,可以使用转义字符进行描述与处理,例如:TAB(\t)、“(\“)、\(\\)等。

运算符

处理优先级:使用括号。希望编写简单易懂的代码。

数学运算符

四则运算,注意简化:+=

求模,如下:

结果为1

 

最好不要用这种方式。

关系运算符

主要特征是进行大小比较处理:>、<、>=、<=、!=、==。判断结果为布尔值。

结果为:true

数据类型之间提供有自动转型的支持,在进行判断时会自动转换为int后判断。

三目(赋值)运算符

使用较多,合理运用可以避免大范围的程序编写。是进行逻辑关系判断后,进行赋值的处理。基本语法如下:

关系运算?满足关系时内容:不满足关系时内容

三目运算可以进行嵌套处理,如下(可读性差):

位运算符

主要进行二进制的数据处理:与(&)、或(|)、非(~)、异或(^)、移位处理。

要理解位操作,一定要清楚十进制与二进制的转换:数字除以二取余。

java是保存32位,二进制转十进制:1 2 4 8 16.... (按位乘)。

与:13 & 7  结果:5            或 :13 | 7 结果:15

 13的二进制:00000000 00000000 00000000 00001101

 7的二进制:  00000000 00000000 00000000 00000111

              与:  00000000 00000000 00000000 00000101   ------5

               或: 00000000 00000000 00000000 00001111   -------15

移位处理:

  2 的二进制: 00000000 00000000 0000000 00000010  ----2

  向左移2位:  00000000 00000000 0000000 00001000  ----8     2<<2

面试题: 请解释&与&&、|与||的区别?

  • &与|,进行位运算与逻辑运算

        在进行位运算时,只对当前条件和数据进行处理

        在进行逻辑运算,所有判断条件都要执行

  • 在逻辑运算上还可以使用&&与||

      &&:当前面的条件返回false,后面的条件将不再判断,结果false

         ||: 当前面的条件返回 true,后面的条件将不再判断,结果true

Java程序逻辑控制

 在程序开发中,一般存在三种l逻辑结构:顺序结构、分支结构、循环结构。

分支结构

IF分支结构

 

SWITCH开关语句

switch是开关语句,基于内容进行判断,判断的只能是数据(int、char、枚举、String),不能够使用逻辑判断。

switch(数据){
    case 数值:{
         数值满足时执行;
         [break;]
   }

    case 数值:{
         数值满足时执行;
         [break;]
   }
    [default:
        所有数值判断都不满足时执行;
        [break;]
   ]
}

循环结构

while循环结构

循环结构表示某一段代码被重复执行的操作,while两种形式的定义,如下:

注意:修改循环条件,避免死循环。

while循环先判断后执行;do...while先执行一次后判断,然后再执行,最好不用;

for循环

语法如下:

循环控制

循环控制语句:break、continue;

break退出整个循环结构

continue结束当前一次调用(结束当次循环)

continue实现goto部分功能方式如下(最好不用):

循环嵌套

循环嵌套的层数越多,时间复杂度越高。例子:打印三角形

方法的定义与使用

在程序之中需要重复执行一些代码,称为方法(method)(也可称为函数(function))。

下面的学习:方法在主类中定义与调用。

方法的基本定义:

在主类中定义与调用的形式如下:

public static 返回值类型 方法名称([参数类型  变量,....]){
        // 该方法的需要执行的代码
        [return [返回值]; ]
        
}

返回值中就可以使用Java的数据类型(基本数据类型、引用数据类型),在方法之中可以进行返回数据的处理。如果要返回数据,使用return描述;return的所返回的数据类型要和返回值类型保持一致,如果无返回值使用void进行声明。

关于方法名称与变量的命名要求:

  • 方法名称:第一个单词的首字母小写,之后的字母大写
  • 变量命名:与方法名称同样的命名规则

例子:定义一个无参数无返回值的方法,如下:

方法的本质方便使用者重复调用,所有的程序从主方法开始依次向下执行。

例子:定义一个有参数有返回值的方法,如下:

在进行方法定义的时候,如果方法的返回值类型为void时,可以使用return来结束调用。例子,如下:

Java定义方法时,不可能太长,最多几十行。

方法的重载

方法重载:当 方法的名称相同,参数的了类型或个数不同时,称为方法的重载。

例子:编写一个加法代码,实现两个int型、三个int型、两个double型。

同一个方法名称可以通过不同的参数类型或不同的方法体进行调用,实现方法重载。注意:方法重载与返回值类型没有关系,只与参数有关系,开发原则: 方法重载返回值;类型要相同。System.out.println()明显的方法重载。

方法的递归调用

注意:

  • 设置方法的结束条件;
  • 每一次调用过程中一定要修改传递参数条件;

例子:1~100的累加

实际开发中,很少使用递归,递归容易出现栈溢出。

例子:计算1!+ 2! + 3! ....

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1篇 Java编程基础   第1章 Java开发环境的搭建(教学视频:9分钟) 2   1.1 理解Java 2   1.2 搭建Java所需环境 3   1.2.1 下载JDK 3   1.2.2 安装JDK 4   1.2.3 配置环境 5   1.2.4 测试JDK配置是否成功 7   实例1 开发第一个Java程序 7   第2章 Java基础类型与运算符(教学视频:39分钟) 9   2.1 基础类型 9   实例2 自动提升 9   实例3 自动转换 10   实例4 常用基础类型之强制转换 11   2.2 运算符 12   实例5 算术运算符 12   实例6 关系运算符 13   实例7 逻辑运算符 14   实例8 位运算符 15   实例9 移位运算符 16   实例10 转型运算符 17   2.3 其他形式 18   实例11 常量与变量 18   实例12 各种进制的转换 19   实例13 Java中的进制与移位运算符 22   第3章 条件控制语句(教学视频:75分钟) 26   3.1 if控制语句 26   实例14 判断输入的年份是否为闰年 26   实例15 抽奖活动 27   3.2 for语句 28   实例16 小九九乘法表 28   实例17 如何列出素数 29   实例18 Java中的递归 31   实例19 男生女生各多少人 32   实例20 求水仙花数 34   实例21 求任意一个正数的阶乘 35   实例22 求n的n次方 35   实例23 利用for循环输出几何图形 36   实例24 杨辉三角 38   3.3 while语句 39   实例25 求1到100之间的和 39   实例26 存上100元需要多少天 40   实例27 输出100之间的所有偶数 41   实例28 如何判断回文数字 42   3.4 do…while语句 43   实例29 输出100之间的所有奇数 44   实例30 求最大的随机数 44   3.5 switch语句 45   实例31 判断字母分类 46   实例32 优良及差 47   实例33 打印任意一年日历 48   实例34 一年四季的划分 51   第2篇 Java数据处理   第4章 异常处理(教学视频:62分钟) 54   4.1 编译时异常 54   实例35 除0发生的算术异常(ArithmeticException) 54   实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55   实例37 数组元素类型不匹配异常(ArrayStoreException) 56   实例38 强制类型转换异常(ClassCastException) 56   实例39 索引越界异常(IndexOutOfBoundsException) 57   实例40 空指针异常(NullPointerException) 58   实例41 数字格式转换异常(NumberFornatException) 59   实例42 字符串索引越界异常(StringIndexOutBounds) 60   实例43 操作错误(UnsupportedOperationException) 60   4.2 运行时异常 61   实例44 找不到指定类时发生的异常(ClassNotFoundException) 62   实例45 请求的方法不存在(NoSuchMethodException) 63   4.3 try…catch捕获异常 65   实例46 try…catch捕获异常的实例 66   实例47 try…catch…finally捕获异常的实例 67   实例48 try…catch嵌套捕获异常的实例 68   4.4 throws声明异常 69   实例49 throws声明异常实例一 69   实例50 throws声明异常实例二 70   4.5 throw抛出异常 72   实例51 throw抛出异常实例一 72   实例52 throw抛出异常实例二 73   4.6 自定义异常 74   实例53 自定义异常实例一 74   实例54 自定义异常实例二 75   第5章 数组(教学视频:98分钟) 78   5.1 一维数组 78   实例55 一

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值