java语言编程基础_java语言编程基础

java语言基本要素

高级语言如c++、c#、java等都有一些共同性的东西:关键字、标识符、

运算符、注释、数据类型、常量和变量、语句、函数、数组。高级语言在这些要素上大同小异。

Java关键字:一些有特定含义,有专门用途的字符串(keyword)。Java中关键字均为小写。如do while if int等。不需要记,用多了自然会知道。

标识符

自定义的名称。如类名、变量名、方法名等。合法标识符规则:1 不可使用关键子字 2 不能以数字开头。在java中标识符可有26个英文大小写字母、数字0~9、_$组成。Java中严格区分大小写。

★:编程中一般起有意义的标识符,方便阅读。这也是一个良好的编程习惯。

注释

顾名思义,就是对代码进行一些标注,说明,或者暂时的”删除”。

Java的注释格式为://单行注释 /* xxxxx */多行注释。注意:注释的代码不参与编译,即不包含在字节码中。

数据类型

a0f0efe55908020856a57edd1a85a7e9.png

Java 是强类型语言,每一种数据都定义了明确的数据类型,在内存总分配了不同的大小的内存空间。注:整数默认int,小数默认double。类型转换:分为强制类型转换(显示)和自动类型转换(隐式)。表达式中byte、short、char的值会提升至int,其他的long、double、float,对应自身类型

例:System.out.println('a' + 1);//char自动类型转换 98

System.out.println( (char)('a' + 1));//强转  b ACSII码

byte b = 4; //byte 范围-128~127 在此范围内的值java会自动强转为byte

byte = b1 + b2;// 变量不可检测,编译会出错,应加强转 举一反三 以下类型一样

Byte 8位带符号整数 -128到127之间的任意整数

Short 16位无符号整数 -32768~32767之间的任意整数

Int 32位带符号整数 -2^31到2^31-1之间的任意整数

Long 64位带符号整数 -2^63到2^63-1之间的任意整数

Float 32位单精度浮点数 根据IEEE754-1985标准

Double 64位双精度浮点数 根据IEEE754-1985标准 一些提示:

不象其它程序设计语言,Java语言中的整型的位数是固定的,而不会根据硬件平台以及操作系统的不同而不同。

值传递:(形式参数类型是基本数据类型加上String类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。

引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。

常量与变量

常量表示不可以改变的数值。Java中的常量:1 整数常量,所有整数  2 小数常量,所有小数。 3 布尔型常量,true和false。 4字符常量  用‘’标识 5 字符串常量 用“”标识 6 null常量,就一个null。

变量:内存中的一块区域,其中有名称(变量名)和类型(数据类型),该区域的数据可以在同一数据类型下不断变化。用途:不断的存放该数据类型的常量,可重复使用。变量的作用范围:在{}中有效。需要初始化。定义变量格式:

数据类型变量名 =初始化值;在java中的基本类型变量都有一个默认的初始化值,因此也可以 基本类型变量名;前提是该变量是类的成员变量时才有默认值,作为局部变量时必须要初始化;

运算符

算数运算:+ 加,连接符如“3” + 2 输出32  - 减 *乘 /除 取商  %取余

++自增(原有基础+1,再赋给原数据 a++等价与 a = a+1 )  --自减

+=加等于a+= 4等价与a = a+4

★:a++参与其他运算时,a原值参与运算后再+1, ++a 则是a+1后参与运算

赋值运算: = 、+= 、-=、/=、%=

比较运算:

>大于  =大于等于

instanceof 检查是否是类对象 例:"Hello" instanceof String  //true

比较运算符的结果只有两个true 或 false

逻辑运算:&&与 ||或  & |亦可,单个与2个的区别: 表达式1&表达式2:两边同时运算后,结果相与;表达式1&&表达式2:表达式1若=false,表达式2不再运算。 用于连接两个boolean类型的值

位运算:直接对二进制进行操作 <>右移  >>>无符号右移 &与  |  或  ^异或  ~反码

★ 2<<3 =16 左移3位后低位补零 等价与 2 * 2(3)

6>>1 = 3 右移后1位,若高位为0,空位补零,否则补1 等价与 6/2(1)

用位运算比算数运算更高效 3*8 ,3<<3 前提:2的整数倍

两个数值型变量交换值的方法:

1.a = temp, a = b, b = temp;

2.a =a + b, b= a-b, a = a-b;

3.a=a^b; b=a^b; a=a^b; 一个数异或两次等于原来的数

三元运算:格式:(条件表达式)?表达式1:表达式2 如果条件表达式为             true结果等于表达式1,为false,结果为表达式2。可看做简            化的if else 语句,但区别是三元运算一定会有结果。

例:获取两数中较大者: int a=4,b=3,c;c= a>b?a:b;结果c=4

语句(程序流程控制)

判断结构、顺序结构、循环结构、选择结构。

顺序结构:没什么好说的,就是程序从上到下执行。

判断结构:if 语句,if else 语句 ,if else if else if..语句:

if(条件判断){

true执行

} else{

false执行};

不写else默认if的以下的程序就是else要执行的程序,如果没有中括号,但按照一定的格式(如上去掉中括号)if else 语句也成立。

{}的作用:括起来的代码叫局部代码块,可决定局部变量的生命周期。

选择结构:switch语句:switch(表达式){

case(取值1):

执行;break;//已取1值,中断选择,执行switch的下一条

case(取值2):

执行;break;

......

default:语句;break;//如果都没选择case的值(先判断case值,不论default写在哪里),则取默认值。

}

注:只有四种数据类型供给switch选择,byte、short、int、char、Enum(枚举类型)、String(java7新增)。紧跟}的语句可以不写break;

循环结构:语句:while、 do while、 for.

While(条件表达式){        do{

执行语句;              执行语句;

}while(条件表达式);//注意分号

}

while(){} 若条件为true,执行语句后 再次判断条件,若为true再执行第二次语句,再判断...,直到条件为false为止。

do while 无论条件如何至少会执行一次do中的执行语句。先做后判断。

for语句:格式for(初始化表达式;循环条件表达式;循环后的操作表达式){

执行语句;//循环体

}

运行顺序:首先执行初始化表达式,然后判读循环条件表达式,若真,执行循环体,然后在执行循环后的操作表达式,接着再判断条件表达式,重复过程,知道调教不满足为止。For语句可以嵌套for 、if。

注:while和for可以交换使用,在于for中定义的变量包括在初始化表达式中定义的变量在循环结束后被内存释放。 无限循环:while(true) for(;;)

其他语句:break跳出循环应用与选择和循环结构、continue跳出本次循环,执行下次一循环,应用于循环结构。

注:两个语句必须作用于自己的应用范围里才有效。这两个语句单独存在时后不跟其他语句,因为执行不到。

函数

函数即方法,指在类中具有特定功能的代码块。运用函数可以将功能代码进行封装,并切只有在被调用时才会执行,提高了代码的复用性。

如何设计一个函数:以函数的功能为中心,考虑功能如何实现?需要几个形参?返回值是什么,自然而然就能下手了。

注:函数内不能再定义另一个函数,能调用其他函数(需要看修饰符,后文会提),函数的结果应返回给调用者。函数调用完,便被内存移除,当被调用时再加载进内存(形参会挂..)。

格式:修饰符 返回类型 函数名(参数类型 形式参数1,参数类型 形式参数2...){

执行语句;

return ;返回值

}

特殊:函数无返回值,不需要返回值时返回类型用void,return可以不写。

函数的重载:在一个类当中允许存在多个重名的函数,只要它们的形参个数或形参类型不同即可。

重载:同类,同名 ,同返回值,不同参数。

注:与返回类型没有关系,区别仅在于参数列表。

数组

同一种类型数据的集合,数组其实就是一个容器。

格式:

元素类型[] 数组名 = new 元素类型[数组长度]

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

数组自动给元素标号,从0开始。不明确具体的数据是什么时用格式1,

已知具体数据用格式2.

数组常见的异常:

ArrayIndexOutofBoundsException: 下标越界,即访问了数组不存在的角标。

NullpointerException: 当引用的变量没有任何实体指向时arr=null,出现该异常。

对数组的操作通过操作角标完成,arr[x] = xx; print(arr[x]);...可以用for循环遍历数组。遍历数组能完成很多有用的功能,查找某个特定数据,求和,求最大,排序等。

基本的遍历方式:for(int = 0;i

arr[i];

}

二维数组:数组中的数组。

格式:int[][] arr = new int[2][3];//二维数组中有2个含有三个元素的一维数组。

int[]][] arr = new int[3][];//二维数组中有三个一维数组。

排序与查找: 记于数据结构与算法中。

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

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

相关文章

junit mockito_JUnit和Mockito合作

junit mockito这次&#xff0c;我想对测试框架Mockito进行概述。 毫无疑问&#xff0c;这是用于测试Java代码的最受欢迎的工具之一。 我已经对Mockito的竞争对手EasyMock进行了概述。 这篇文章将基于有关EasyMock的示例应用程序。 我的意思是代表咖啡机功能的类。 使用Mockito…

debian10树莓派4安装mysql_树莓派4上如何安装 Raspbian Buster

随着 Raspberry Pi 4 主板的问世&#xff0c;了解如何使用Raspbian Buster设置您的操作系统。你的新Pi 4到了邮箱&#xff0c;你已经设置了办公桌&#xff0c;您已准备好安装操作系统。对于初学者来说&#xff0c;Raspbian为Pi制造商提供了出色的桌面体验。最重要的是&#xff…

借助财务客户评估解决方案在云中构建AppDev

现代JBoss BRMS时代最古老的业务逻辑演示是2012年6月发布的“ 客户评估”示例 。 那时&#xff0c;JBoss BRMS包含规则&#xff0c;事件和流程。 该项目提供了一个完整安装和配置的环境&#xff0c;用于展示该项目和所有可用的BPM组件。 它包括一个带有单元测试的JBoss Develo…

jvm 性能_JVM性能魔术

jvm 性能HotSpot是我们众所周知和喜爱的JVM&#xff0c;是Java和Scala汁流淌的大脑。 多年来&#xff0c;许多工程师对其进行了改进和调整&#xff0c;并且每次迭代时&#xff0c;其代码执行的速度和效率都接近于本机编译代码。 JIT&#xff08;“及时”&#xff09;编译器是…

java高级编程期末考试题_java高级编程考题

Java高级课程测试1在进行swing开发时&#xff0c;经常用的布局管理器有那几种&#xff1f;(5)2Gui组件&#xff0c;容器&#xff0c;框架&#xff0c;到底有怎样的关系&#xff0c;请举例说明&#xff1f;(5)3在进行swing开发中会用到事件处理&#xff0c;那事件处理的三个主要…

spring 事务 会话_测试Spring的“会话”范围

spring 事务 会话在基于Spring的Web应用程序中&#xff0c;bean的作用域可以是用户“会话”。 从本质上讲&#xff0c;这意味着对会话范围Bean的状态更改仅在用户会话范围内可见。 本条目的目的是简单地突出显示Spring Test MVC提供的一种方法&#xff0c;用于测试将会话范围的…

Hollowjars,部署扫描程序以及Wildfly群体为何很棒

在上一篇文章中&#xff0c;我描述了如何使用OpenLiberty和maven作为独立服务器或maven构建的一部分来启动服务器&#xff0c;以及如何创建fatjar包。 在这篇文章中&#xff0c;我正在研究如何使用Wildfly群。 我仍在尝试使MicroProfile在Wildfly full上运行&#xff0c;因此&…

Java调用跟踪系统_Tracer:在分布式系统中的调用跟踪和日志相关

Tracer: Distributed system tracingTracer noun, /ˈtɹeɪsɚ/: A round of ammunition that contains a flammable substance that produces a visible trail when fired in the dark.Tracer is a library that manages custom trace identifiers and carries them through …

java 垃圾回收手动回收_Java垃圾回收(3)

java 垃圾回收手动回收接下来是我的前两篇垃圾收集博客文章&#xff1a; GC热点概述 。 并行垃圾收集器 。 并发标记扫描 Hotspot中的并行垃圾收集器旨在最大程度地减少应用程序进行垃圾收集所花费的时间&#xff0c;这称为吞吐量 。 对于所有应用程序而言&#xff0c;这并不…

java测试netty_《Netty官方文档》基准测试

原文链接 译者&#xff1a;lijunshuNetty有一个模块叫’netty-microbench’&#xff0c;我们可以用他来执行一系列的微型基准测试。Netty-microbench是基于OpenJDK JMH构件的(HotSpot的推荐基准测试方案)。当你开始netty基准测试时&#xff0c;你不需要额外的依赖。运行基准测…

Java命令行界面(第30部分):观察

这个有关Java命令行参数解析的系列文章由四个月来发表的29篇文章组成&#xff0c;涵盖了28个不同的开放源代码库&#xff0c;可用于解析Java命令行参数。 这篇文章收集了可以从本系列的前29篇文章中得出的一些观点&#xff0c;并提供了一些一般性的考虑&#xff0c;以便在选择2…

java导出excel 科学计数法_基于Java将Excel科学计数法解析成数字

需要注意的是一般的科学表达式是1.8E12 1.8E-12而在Excel中的科学表达式是1.8E12 1.8E-12我写的科学计数法的正则表达式是(-?\d\.?\d*)[Ee]{1}[\-]?[0-9]*导入EXCEL数据时将科学计数法解析成数字&#xff0c;Java代码&#xff1a;import java.text.DecimalFormat;import jav…

java描边_shape描边设置是否显示四周描边

android:width"1pt"/>android:topRightRadius"30pt"android:bottomRightRadius"30pt" />效果图如下&#xff1a;这里设置了左边描边不显示设置虚线&#xff1a;android:shape"line">android:dashGap"3pt"android:d…

java 垃圾回收手动回收_Java垃圾回收(2)

java 垃圾回收手动回收并行清理 今天&#xff0c;我们介绍了并行GC的工作原理。 具体来说&#xff0c;这是在Eden上运行并行Scavenge收集器&#xff0c;在Tenured一代上运行Parallel Mark and Sweep收集器的组合。 您可以通过传递-XX&#xff1a; UseParallelOldGC来获得此选项…

java正则表达式性能_译:Java 中的正则表达式性能概述

译者&#xff1a;Darren Luo1. 概述在本快速教程中&#xff0c;我们将展示模式匹配引擎是如何工作的。我们还将介绍在 Java 中优化正则表达式的不同方式。有关正则表达式的的使用介绍&#xff0c;请参阅此文。2. 模式匹配引擎java.util.regex 包使用了一种叫做 Nondeterministi…

带注释的控制器– Spring Web / Webflux和测试

Spring Webflux和Spring Web是两个完全不同的Web堆栈。 但是&#xff0c; Spring Webflux继续支持基于注释的编程模型 使用这两个堆栈定义的端点可能看起来相似&#xff0c;但是测试该端点的方式却大不相同&#xff0c;并且编写此端点的用户必须知道哪个堆栈处于活动状态并相应…

jquery解析java对象数组_Javascript / jQuery初学者:将对象推送到数组

Well you are changing the reference of same object通过示例了解它是如何工作的let a {};let b a;a.name xyz;a.name abc;console.log(a.name)console.log(b.name)所以在上面的示例中我们有两个变量a和b . a是一个对象 .每当我们更新名称时&#xff0c;最后一个值将被新的…

java查看jvm对象个数_jmap-查看 jvm 内存对象信息

jmap 概述命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件&#xff0c;也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。参数option&#xff1a;选项参数。pid&#xff1a;需要打印配置信息的进程ID。executable&#xff1a;产…

OpenHub框架进行的异步通信

在本系列的前一部分中&#xff0c;我们介绍了OpenHub框架 。 这部分显示了框架最强大的功能之一- 异步消息传递模型 。 当源系统无法等待目标系统的响应时&#xff0c;将使用系统之间的异步通信。 有以下几个原因&#xff1a; 源系统必须尽可能地响应 &#xff0c;并且不受外…

Java实现C语言select函数_一道面试题目,分别用sql 和java,c++, c语言实现,

引用来自“雨翔河”的评论获取国家假日办的的信息&#xff0c;然后根据假日办提供的信息来搞定。日期的话&#xff0c;哈哈&#xff0c;找个提供日期查询的接口&#xff0c;借用一下来查日期&#xff0c;也搞定了。总之哪里有的抄就抄哪里的。再来一个笨蛋的意见&#xff0c;把…