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;编译器是…

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测试netty_《Netty官方文档》基准测试

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

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来获得此选项…

OpenHub框架进行的异步通信

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

工厂设计模式和策略设计模式_设计模式:策略

工厂设计模式和策略设计模式这次我想谈谈策略设计模式 。 通过这种方式&#xff0c;我开始撰写有关行为设计模式的文章。 这种模式表示对象之间的某些交互模式&#xff0c;以使代码更灵活且组织得更好。此方法的最本质点是对象之间的松散耦合。 当您的应用程序中有多个实现目的…

如何将不带web.xml的Spring应用程序部署到Tomcat

介绍 由于Servlet 3规范不再需要web.xml来配置Web应用程序&#xff0c;因此已通过使用注释代替。 在本文中&#xff0c;我们将研究如何在不使用web.xml情况下将简单的基于Spring的应用程序部署到Tomcat 8.5。*。 创建一个空的应用程序 使用以下命令使用maven webapp原型创建一…

Python和Java结合的项目实战_[项目实战] Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 [...

资源介绍课程简介:xa0xa0Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 教学视频----------------------课程目录Python项目实战篇[初级项目&#xff1a;图片社交电商导购漂流瓶]项目实现功能&#xff1a; 用户注册&#xff0c;登录&#xff0c;登出图片的多种…

设计模式 建造者模式_设计模式:建造者

设计模式 建造者模式有时需要在应用程序中创建一个复杂的对象。 一种解决方案是Factory模式&#xff0c;另一种是Builder设计模式。 在某些情况下&#xff0c;您甚至可以结合使用这两种模式。 但是在本文中&#xff0c;我想研究一下Builder设计模式 。 我需要说的第一件事是创造…

在MongoDB和Spring Batch中将XML转换为JSON和原始使用

总览 为什么将XML转换为JSON以在MongoDB中原始使用&#xff1f; 由于MongoDB使用JSON文档存储记录&#xff0c;就像表和行将记录存储在关系数据库中一样&#xff0c;我们自然需要将XML转换为JSON。 某些应用程序可能需要存储原始&#xff08;未修改的&#xff09;JSON&#xf…

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

java 垃圾回收手动回收这是有关垃圾收集&#xff08;GC&#xff09;的系列文章中的第一篇。 我希望能够涵盖整个系列过程中的理论知识以及热点虚拟机中的所有主要收集器。 这篇文章仅说明什么是垃圾回收以及不同回收器共有的元素。 我为什么要在乎&#xff1f; 您的Java虚拟机…

使用Apache Isis快速进行SEMAT应用程序开发

TL; DR这篇文章谈论我使用Apache Isis创建并部署到此处的OpenShift Online的SEMAT宠物项目&#xff1a; http&#xff1a; //semat.ofbizian.com Apache Isis 作为主要在后端系统上工作的Java开发人员&#xff0c;我讨厌创建用户界面和处理Java脚本。 幸运的是&#xff0c;有J…

java 对象锁定_少锁定Java对象池

java 对象锁定自从我写任何东西以来已经有一段时间了&#xff0c;我一直在忙于我的新工作&#xff0c;其中涉及在性能调优方面做一些有趣的工作。 挑战之一是减少应用程序关键部分的对象创建。 尽管Java随着时间的推移已改进了GC算法&#xff0c;但垃圾回收打ic一直是Java的主…

Oracle JDBC中的PreparedStatement占位符过多

使用Oracle数据库时&#xff0c;导致ORA-01745&#xff08;“无效的主机/绑定变量名称错误”&#xff09;错误的原因有多种。 关于错误ORA-01500到ORA-02098的Oracle 9i文档提供了有关ORA-01745的更多详细信息。 它指出&#xff0c;“原因”是“绑定变量或INTO规范中的冒号后跟…

webview加载php文件,HYWebview下载自定义文件教程

车机版 HYWebview升级到1.3了多增加了一个进度条多增加了自定义下载URL功能使用教程。浏览器打开DNS地址&#xff1a;103.44.248.95可见 底部有一个 下载链接 和 提货密码 可以输入&#xff01;比如 我们去应用宝官网复制下载链接出来&#xff1a;https://download.sj.qq.com/u…