java语言基本要素

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

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

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

标识符

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

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

注释

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

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

数据类型

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][];//二维数组中有三个一维数组。

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

java语言编程基础_java语言编程基础相关推荐

  1. java 编程原理_Java网络编程 -- 网络编程基础原理

    Hello,今天记录下 Java网络编程 --> 网络编程基础原理. 一起学习,一起进步.继续沉淀,慢慢强大.希望这文章对您有帮助.若有写的不好的地方,欢迎评论给建议哈! 初写博客不久,我是杨展 ...

  2. java程序设计基础篇_Java语言程序设计(基础篇) 第一章

    第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...

  3. java c++的区别_Java语言与C、C++之间的区别?

    小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...

  4. java并发编程实践_Java并发编程实践如何正确使用Unsafe

    一.前言 Java 并发编程实践中的话: 编写正确的程序并不容易,而编写正常的并发程序就更难了.相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各 ...

  5. java什么是网络接口_Java语言:什么叫面向接口编程(来自网络)

    在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的.在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了:而各个对象之间的协作关系则成为系统设计的关键.小到不 ...

  6. java爬虫面试题_Java 网络爬虫基础知识入门解析

    前言 说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做 ...

  7. java 网络编程 聊天_Java——网络编程(实现基于命令行的多人聊天室)

    目录: 1.ISO和TCP/IP分层模型 2.IP协议 3.TCP/UDP协议 4.基于TCP的网络编程 5.基于UDP的网络编程 6.基于TCP的多线程的聊天室的实现 1.ISO和TCP/IP分层模 ...

  8. java函数式编程例子_java函数式编程Lambda表达式的示例(一)

    函数式编程是时下比较流行的编程方式了,很多新兴的编程语言都对函数式编程有了比较好的支持,她有别于传统的命令式编程,可以将函数(执行代码的过程)作为参数进行传递.JAVA也意识到了函数式编程的重要性,在 ...

  9. java语言主要特点_Java语言的主要特点

    Java语言有下面一些特点 :简单.面向对象.分布式.解释执行.鲁棒.安全.体系结构中立.可移植.高性能.多线程以及动态性. 1.面向对象 Java语言的设计集中于对象及其接口 ,它提供了简单的类机制 ...

最新文章

  1. 2022-2028年中国锂电池用聚烯烃隔膜行业市场发展调研及投资方向分析报告
  2. PDF编辑处理的一条龙服务
  3. 伤疤好了有黑印怎么办_搞笑gif动态图片:“发现相亲对象的闺蜜更有实力,我后悔了”哈哈哈好一个见色起意...
  4. 如何将qlv格式倚天屠龙记转换为MP4格式
  5. MOSS2007的网站和工作区
  6. 你真的了解泛型 Generic 嘛?
  7. JS遮罩插件 -- JqLoad
  8. python编程菱形_Python打印“菱形”星号代码方法
  9. UITabBarController使用总结
  10. SQL - 将NULL设置为 NOT NULL
  11. 打遍天下无敌手,却说它只是个baseline!多目标跟踪FairMOT的烦恼
  12. vsftpd增加用户 linux,Ubuntu Linux中vsFTP添加用户
  13. Docker Swarm学习教程
  14. Java中JCP, JEP, JLS, JSR是什么
  15. CentOS修改tomcat端口
  16. 计算机控制系统开环控制有什么特点,自动控制系统基本控制方式?各有什么特点?...
  17. HR看到个华为 21级程序员的简历,月薪27w,那是什么概念!
  18. Android 百分比布局
  19. Eclipse红叉报错
  20. C# 打开excel

热门文章

  1. Linux 命令之 touch -- 创建文件
  2. Struts2请求处理的内部流程说明(版本一)
  3. python if语句能否判断中文_Python“if”语句被忽略
  4. sap 分摊分配不产生会计凭证的原因_SAP软件的物料分类账功能
  5. 从前有座山,山里有座庙:递归之法
  6. python刷题_11.学习Python,刷题才能让你感受到快(差)乐(距)!
  7. c语言函数的三种调用方式是什么?
  8. C语言打印输出红色字体
  9. 长见识:你真的知道C语言里extern quot;Cquot; 的作用吗?
  10. C语言实现魔方阵代码及解析