CSDN程序设计精品课程——Java程序设计(Java语言概述·Java语言基础·Java基本数据类型)

news2024/10/7 4:30:37

Java程序设计课程分配:

  • Java语言概述
  • Java语言基础
  • Java基本数据类型
  • 控制结构
  • Java核心类
  • 类的定义与使用
  • 对象的初始化
  • 继承
  • 抽象类与接口
  • 异常的处理
  • 自定义异常
  • 字节流
  • 字符流
  • 标准输入/输出流
  • 基本类型的包装类型
  • 泛型和集合类

目录

 Java语言概述

Java语言的特点 

Java开发环境 

Java语言基础

Java基本数据类型

整型类型及整数的运算

浮点数据类型及运算

字符数据类型

位运算

布尔数据类型


 Java语言概述

Java是一种面向对象的高级设计语言,也是一种软件平台。Java非常适用于开发Internet应用程序,同时也是一种通用程序设计语言;

Java语言的特点 

Java开发环境 

Java支持多种类型的程序,客户端小应用程序Applet,服务器端小应用程序 Servlet,以及应用程序 Application。对每种应用类型,集成开发环境能够为开发者提供很大的便利,尽管可以使用各种不同的集成开发环境开发 Java应用,但程员至少应该掌握使用JDK(Java Standard Edition Development Kit)进行应用程序的开发方法,即使用文本编辑器来编写 Java 程序,然后使用Java编译器对源程序进行编译并用 Java解释器对编译后的字节码进行解释执行。

可以从因特网下载适当版本的 JDK 装程,进行安装,并把安装目录 jdk/bin 加入操作系统的可执行路径即可。以在Windows系统安装Java SE 7版本JDK 1.7为例,启动控制面板,选择系统、环境变量,找到用户环境变量中的path变量,然后在其开头加上jdk\bin目录,并用一个分号把新加入的路径同原来的内容分开。设置完成后,启动一个控制台窗口,并输入 java-version,如果设置正确,可得到一个版本信息,例如:

java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode, sharing)

 至此,系统已经能够找到 Java 编译器 javac.exe 和 Java 解释器 java.exe。Java 语言的很多强大功能是通过类库实现的,为了让Java解释器找到这些类库的位置,需要设置classpath环境变量,设置方法与path环境变量的设置方法相同。或者使用Java解释器时采用-classpath命令参数选项指定从什么位置寻找程序所需的类。

Java语言基础

Java中“类”是程序组织的最基本单元。Java 程序是由一个或者多个“类”组成的,类都应写在扩展名为.java 的文本文件(Java 源程序)中,一个源文件中最多只能有一个公共类,即每一个公共类都应该写在一个单独的 Java 源文件中,而且公共类的类名应该和文件名完全相同(不含文件扩展名)。每个类编译后生成.class字节码(Bytecode)文件,在Java虚拟机中执行。每个Java应用程序都应该有一个main方法,作为执行入口。

/**
*文件名为 JavaExample.java,文件名与公共类名完全相同。
*/
public class JavaExample
{
/*公共静态main方法作为程序入口,static关键字表示静态方法*/
public static void main(String []args)
{
Sytern.out.println("A java program example!");//输出
}
}

运行结果为:

 A java program example!

Java 程序中的注释用“//单行注释”标识行注释,或由“/*多行注释*/”标识多行块注释,由“/**文档注释*/”所标识的块注释支持javadoc生成文档。上面程序的第1行至第3行为块注释,并支持javadoc 生成文档。第4行定义了一个名为JavaExample的类,定义时采用 public关键字指定了此类为公共类,可以被其他客户类访问。程序第5行为普通块注释。程序第 6 行定义了一个公共的、静态的 main 方法,这里将main 定义为公共方法的目的是让Java解释器能够调用此方法,而定义为静态是因为在调用main 方法的时候还不存在任何对象,main方法属于类。main方法的参数String[]args是一个字符数组,用来存储程序开始运行时传递给main方法的参数,其中,String是一个字符串类,args 是一个字符串对象的数组,方法的返回值为空。程序的第7行是一条输出语句,System类中含有静态变量out,out中的方法println输出一个字符串到控制台,字符串需要用双引号括起来。输入语句右侧为行注释。程序中每一条语句都用分号结束。

Java基本数据类型

程序中的变量(Variable)是一块命名的、用来存储数据的内存区域。在 Java 程序中,每块被命名的内存区域都只能存储一种特定类型的数据。程序中直接给出的数值被称作直接量(字面值,literal),每直接量也有对应的数据类型。使用一个变量前,必须声明(Declaration)其名字和类型

Java 中的标识符(Identifier)用来标识Java 程中的变量、方法和类名等,变量名就是标识符的一种。Java 程中标识符的长度没有上限,由字母、数字、下画线(_)以及美元符号($)组成,但必须以字母、下画线或美元符号开头。值得注意的是,Java 完全支持 Unicode 字符,因此程序中可以使用Unicode字符集中定义的任何语言的字符,例如可以用中文定义变量名。

Java数据类型分为基本类型(Primitive Type)和引用类型(Reference Type)两种。基本类型表示简单的值,包括整型、浮点型、字符型和布尔型。每种基本类型都被精确地定义,开发者不用担心在不同的平台上基本类型都会有差异。引用类型包括对象和数组。

整型类型及整数的运算

整数类型分为byte、short、int和long。byte类型的变量可以表示-128~127之间的整数,在内存中占一个字节(8位);short类型的变量可以表示-32768~32767之间的整数,在内存中占据2个字节;int和long分别占据4个字节和8个字节

程序中直接出现的整型数值都被称为整型直接量,其默认类型是int。如果整型直接量的值大于int型表示的数据范围,则需要在最后加上大写字母L或小写字母l,表示此整型直接量为 long 型数据。如果以十六进制的形式表示数值,则在数值前加上0X或0x;若需要以八进制的形式表示,则可在数字前面加上0,这一点与C/C++相同。

使用整型变量前必须先对其进行声明,声明的同时可以对其进行初始化,基本类型声明的同时就会分配相应的内存空间,如:

long longValue=78//声明一个long型的变量longValue,并初始化其值为78
int intValue =54;
short shortValue-122; 
byte byteValue=33;

 其中 longValue=78为赋值表达式,表达式是由变量、操作符以及方法调用构成。

赋值运算符号用“=”表示,赋值运算符的作用是将“=”右边表达式的计算结果存储到左边的变量中,如:

int xValue=0,yValue =8,zValue; 
zValue = xValue + yValue;

如果没有对变量进行正确的初始化就使用,在编译时Java编译器会报告出错误信息,因此声明变量的同时进行初始化是一个好的习惯

针对整型数据的运算还有加(+)、减(-)、乘(*)和除(/)。当“+”和“--”运算符号的左边没有操作数的时候,“+”表示取变量或数值本身的值,“--”表示取变量或数字的相反值。运算时乘法和除法具有较高的优先级别,加法和减法优先级较低,括号可以改变运算的先后次序。 

(整数相除得到的仍然是整数,余数将被舍去,使用取模运算符%可获得两个整数相除后的余数,取模运算符的优先级与乘、除相同)

递增运算“++”和递减运算“- -”使一个整型变量加1或者减1,例如:

count++;或者++count;        //使count的变量的值增加1
count--;或者--count;        //使count的变量的值递减1

如果没有其他运算,则递增和递减运算符号放在变量的前后效果是一样的。但如果还有其他运算的参与,结果就可能不同,例如:

int xValue=9,yValue=10,zValue;
zValue=xValue++ +yValue;

 代码执行后, zValue 的值为19, xValue 的值为10.若把递增运算放在 xValue 的前面,即 zValue =++xValue+yValue;,则代码执行后 zValue 的值为20,xValue 的值为10。

因此在考虑到运算符号优先级的情况下,如果递增或递减运算符号放在变量前面,表示先对变量进行递增或者递减,再取变量的值参与其他运算;如果放在后面,则表示先取变量的值参与运算,再对变量进行递增或递减

使用 byte 或 short 进行算术运算时要注意,任何多个 byte 或 short 变量运算的结果都是32位的。下面的代码虽然操作数都是 short 类型,但是无法正确通过编译。

short xValue=8;yValue=9,zValue;
zValue=xValue*yValue;

因为 xValue*yValue所得到的结果是一个32位的整型值,而 zValue 仅仅能存储16位整数,编译器不会自动将一个32位整型值转化为16位的整型值。所以需要显式的类型转换,即:

zValue=(short)(xValue*yValue);

 计算结果中的高16位将被舍弃。

使用显式类型转换时要注意,如果计算结果超出了16位所表示的范围,显式类型转换后得到的结果将是不正确的。

如果操作数中有 long 型数据,那么计算的结果将是 long型数据,其他的操作数在与此 long 型数据运算前都将被转换成64位格式。

Java SE 7起,支持在数值型中间采用下划线(_)分割字符,下划线可以任意多个。例如:

long creditCardNumber=1234_5678_9012_3456L;
long hexLong=0xCAFE_BABE;

 浮点数据类型及运算

Java中有两种基本的浮点类型: float 和 double float 占4个字节的内存空间而 double 占8个字节

浮点型直接量的默认类型为 double 类型,若要明确地表示浮点型直接量的类型为 float,则需要在数字的最后加上一个字母F或f。对一个 float 类型的变量初始化时,这一点非常重要的,因为Java编译器不会将一个 double 类型的数值自动转换为 float 类型。若浮点数值特别大或者特别小,则可以采用指数的形式书写,如5.67E8或5.67e8都表示5.67×10^8, 9.32E-9或者9.32e-9表示9.32×10^-9。

用于整型数据的运算同样适用于浮点类型数据,但是运算的默认类型为 double 类型,所以,两个 float 类型运算的结果为 double 类型

“++”或“- -”作用于浮点数时,增加和减少的幅度为1.0,。取模运算作用于两个浮点数时,得到的是被除数减去除数的整倍数的结果,如表达式30.6%5.0的结果为0.6。

当两个类型不同的运算对象进行二元运算时,Java自动把精度低的类型转换为精度高的类型。例如,如果一个 int 型数据与一个 float 型数据相加,则将 int 型数据转换为 float 型数据,因为 float 型比 int 型精确。如果运算对象之一是 double 型,则将另一个转换为 double 型,因为 double 型是数据类型中最精确的。

与C/C++相同,Java提供的=了一种运算的简写形式,即+=、-=、*=、/=、%=等,例如:

count +=5  等价于  count=count+5

zValue/=xValue*yValue  等价于  zValue=zValue/(xValue*yValue)

字符数据类型

字符类型用关键字 char 标识,一个字符类型的变量在内存中占据两个字节,字符直接量用单引号括起来,如 ‘x’、‘A’ 等。如果要表示字符单引号“ ' ”或者双引号“ " ”,则必须使用转义字符斜杠(\)。例如,下面的字符变量c的值是单引号字符。

char c='\";    //字符变量c用字符常量单引号初始化

常用的其他字符用转义方式表示:退格(\b)、换页(\f)、换行(\n)、回车(\r)、水平制表或Tab键(\t)

位运算

默认情况下,位运算针对 int 类型数据进行操作。位运算也可对 byte 、short 、long 以及 char 型数值进行操作,如果有 long 型数据,则计算结果为 long 型,否则所用参与位运算的其他类型都会被转化为 int 类型进行运算,计算结果为 int 类型。

位运算有以下几种:

  • 与运算操作符“&”:将两个操作数的二进制位进行按位与运算,如果对应的二进制位都是1时,该位的结果为1,否则为0。
  • 或运算操作符“|”:将两个操作数的二进制位进行按位或运算,如果对应的二进制位都是0时,该位的结果为0,否则为1。
  • 异或运算操作符“^”:将两个操作数的二进制位进行按位异或运算,如果对应的二进制位相同,该位的结果为0,否则为1。
  • 非运算操作符“~”:将一个操作数的二进制位进行按位取反。
  • 左移运算操作符“>>”:将操作数对应的二进制位左移1位,右侧补0。
  • 右移运算操作符“<<”:将操作数对应的二进制位右移1位,左侧填充符号位。
  • 无符号右移运算操作符“>>>”:将操作数对应的二进制右移1位,左侧补0。

布尔数据类型

取值只能为 true 或 false 的变量类型就是布尔类型,用关键字 boolean 来表示类型名,true 和 false 是布尔类型的直接量。

布尔类型和其他的数据类型有所不同,它不能和其他数据类型相互转换,这一点和C\C++中有较大的区别。

Java提供了大于(>)、小于(<)、大于或等于(>=)、小于或等于(<=)、等于(==)、不等于(!=)6种关系运算符号,关系运算符作用于整型、浮点型和字符类型,并得出一个布尔类型的结果。

针对布尔类型的运算有与(&&和&)、或(|和||)、非(否定,!)。

&&与&表示逻辑AND,当两个操作数的值都为 true 时,结果为 true ,否则为 false。它们的区别在于:当左操作数的值为 false 时,&&不再计算右操作数的值而直接得出最终的结果 false ,而&则仍然计算右操作数的值,即&&执行短路计算,而&执行非短路计算。

【例】逻辑运算符&&、&使用举例

public class AndExample {
  public static void main(String args[){
          boolean aValue= false; 
          boolean bValue = false; 
          inti=1,j= 2,z-0;
          aValue=(j<2)&&((z=itj)>j);
          System.out.printin("aValue=" + aValue);
          System.out.printin("z="+ z); 
          bValue=(j<2)&((z=i+j)>j);
          System.out println("bValue=" + bValue);
          System.out.printin("z=" + z);
     }
}

 运行结果为:

aValue=false

z=0

bValue=false

z=3

 注意:不要将逻辑运算与位运算混淆。逻辑运算作用于布尔类型的值,而位运算作用于整型值;逻辑运算得到的是 true 或者 false ,位运算得到的是整型数值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1034443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初学Java小案例(一)

目录 案例一&#xff1a;买飞机票 案例二&#xff1a;开发验证码 案例三&#xff1a;评委打分 案例四&#xff1a;数字加密 案例五&#xff1a;数组拷贝 案例六&#xff1a;抢红包 案例七&#xff1a;找素数的三种方法 案例八&#xff1a;打印乘法口诀表 案例九&#x…

el-image 和 el-table冲突层级冲突问题

其中原理&#xff0c;很多博客已经所过了&#xff0c;table组件中使用图片&#xff0c;会出现层级过低问题&#xff0c; 网上大部分解决方式是 使用穿透 // 单元格样式 ::v-deep(.el-table__cell) {position: static !important; }我在此不推荐这种解决方式&#xff0c;原因&a…

如何编写测试用例,一篇搞定

前言 说到测试用例&#xff0c;但凡是软件测试从业人员&#xff0c;都不会陌生。但对于测试新手来说&#xff0c;测试用例仍旧有遗漏&#xff0c;或者写不好的时候。那么&#xff0c;究竟应该如何写好测试用例呢&#xff1f;今天就来针对性的聊聊这个话题。 在分析如何写测试…

初识Java 10-3 集合

目录 Collection和Iterator的对比 for-in和迭代器 总结图 本笔记参考自&#xff1a; 《On Java 中文版》 Collection和Iterator的对比 Collection是所有序列集合的共同根接口。因此&#xff0c;可以认为它是一个为表示其他接口之间的共性而出现的“附属接口”。 java.util.Ab…

Linux下ThinkPHP5实现定时器任务 - 结合crontab

实例一&#xff1a; 1.在/application/command创建要配置的PHP类文件&#xff0c;需要继承Command类&#xff0c;并重写configure和execute两个方法&#xff0c;例如: <?php namespace app\command; use think\console\Command; use think\console\Input; use think\cons…

紫光展锐6nm国产5G处理器T820_国产手机芯片5G方案

紫光展锐T820是一款采用先进6nm EUV工艺的芯片&#xff0c;采用134三丛集八核心CPU架构&#xff0c;由1个主频为 2.7GHz 的 Arm Cortex-A76 大核和 3个主频为2.3GHz 的Arm Cortex-A76大核以及4个主频为2.1GHz的 Arm Cortex-A55组成 &#xff0c;支持高达3MB 三级缓存&#xff0…

【解决方案】edge浏览器批量添加到集锦功能消失的解决方案

edge的集锦功能很好用&#xff0c;右键标签页会出现如下选项&#xff1a; 但在某次edge更新后&#xff0c;右键标签页不再出现该选项&#xff1a; 这里可以参考为什么我的Edge浏览器右键标签页没有“将所有标签页添加到集锦”功能&#xff1f; - Microsoft Community 一文提出…

1794_ChibiOS网络书籍的介绍阅读

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 看到这个介绍我觉得这个OS的作者也是一个超级hack&#xff0c;而且非常有工匠精神。为什么要推出一个全新的RTOS呢&#xff0c;其实主要的原因就是觉…

【C语言】插入排序详解

文章目录 一、直接插入排序1、插入排序思想2、程序代码3、测试 二、希尔排序1、什么是希尔排序2、希尔排序图解3、程序代码4、测试 一、直接插入排序 1、插入排序思想 直接插入排序就是将待排序的记录按照它的关键码值插入到一个已经排好序的有序序列中&#xff0c;直到所有的…

【亲测有效】解决npm报错:RequestError: unable to verify the first certificate

问题简述 帖主从nodejs官网下载安装nodejs后&#xff0c;发现使用以下命令安装electron会报错 npm install electron报错信息如下&#xff1a; npm ERR! RequestError: unable to verify the first certificate解决方案 网上列举的方案&#xff0c;无外乎&#xff1a; 设置…

一篇文章让你学会什么是哈希

一篇文章让你学会什么是哈希 哈希概念哈希冲突哈希函数1. 直接定址法2. 除留余数法3. 平方取中法4. 折叠法5. 随机数法6. 数学分析法 哈希冲突解决1. 闭散列1.1 线性探测1.2 二次探测 2. 开散列 开散列和闭散列对比 哈希概念 哈希在C中有广泛的应用&#xff0c;它是一种用于快…

Compose LazyColumn 对比 RecyclerView ,谁的性能更好?

LazyColumn 是 compose 中用来实现类似 RecyclerView 效果的控件 &#xff0c;但是大家都说LazyColumn性能比RecyclerView差太多&#xff0c;毕竟 RecyclerView google优化了十多年了&#xff0c;比RecyclerView差一点也正常&#xff0c;今天我们就用实际数据来对比LazyColumn和…

全流程HEC-RAS 1D/2D水动力与水环境模拟技术案例实践及拓展应用丨从小白到精通,十九项案例实践

目录 专题一 水动力模型基础 专题二 恒定流模型(1D/2D) 专题三 一维非恒定流 专题四 二维非恒定流模型&#xff08;一&#xff09; 专题五 二维非恒定流模型&#xff08;二&#xff09; 专题六 HEC-RAS的水质模型 专题七 高级主题 水动力与水环境模型的数值模拟是实现水…

如何安全传输存储用户密码?(程序员必备)

前言 我们开发网站或者APP的时候&#xff0c;首先要解决的问题&#xff0c;就是「如何安全传输和存储用户的密码」。一些大公司的用户数据库泄露事件也时有发生&#xff0c;带来非常大的负面影响。因此&#xff0c;如何安全传输存储用户密码&#xff0c;是每位程序员必备的基础…

基于springboot+vue的大学生科创项目在线管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

Git大全

目录 一、Git概述 1.1Git简介 1.2Git工作流程图 1.3查看Git的版本 1.4 Git 使用前配置 1.5为常用指令配置别名&#xff08;可选&#xff09; 1.5.1打开用户目录&#xff0c;创建 .bashrc 文件 1.5.2在 .bashrc 文件中输入如下内容&#xff1a; 1.5.3打开gitBash&#xff0c;执行…

若依框架集成WebSocket带用户信息认证

一、WebSocket 基础知识 我们平时前后台请求用的最多的就是 HTTP/1.1协议&#xff0c;它有一个缺陷&#xff0c; 通信只能由客户端发起&#xff0c;如果想要不断获取服务器信息就要不断轮询发出请求&#xff0c;那么如果我们需要服务器状态变化的时候能够主动通知客户端就需要用…

商家收款码费率是什么意思

今天&#xff0c;我将分享如何有效地降低日常中的收款手续费率。我们都知道&#xff0c;不管是微信支付还是支付宝&#xff0c;平台都会从中扣除一定的手续费。但你是否知道&#xff0c;其实手续费率是可以降低的呢&#xff1f;今天介绍如何申请最低手续费率为0.2%的方法&#…

【从0学习Solidity】26. 删除合约

【从0学习Solidity】26. 删除合约 博主简介&#xff1a;不写代码没饭吃&#xff0c;一名全栈领域的创作者&#xff0c;专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构&#xff0c;分享一些项目实战经验以及前沿技术的见解。关注我们的主页&#xff0c;探索全栈…

酒店外卖小程序商城的作用是什么

随着线上餐品销售属性增强&#xff0c;传统酒店除了承接到店客户&#xff0c;外送也成为生意的一部分&#xff0c;但传统打电话、微信发送的方式无法实现餐品全面呈现和客户随时订购需求&#xff0c;在配送方面也无法规范化。 除此之外&#xff0c;还需要完善营销、会员管理、…