java语言编程基础

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.length;i++){

arr[i];

}

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

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

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

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

时间: 2024-08-06 03:23:29

java语言编程基础的相关文章

2.2JAVA基础复习——JAVA语言的基础组成运算符和语句

JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号. 6.语句:程序中常用的一些语句. 7.函数:也叫做方法,用来做一些特定的动作. 8.数组:用来存储多个数据的集合. JAVA中的运算符 1.算术运算符:用来进行一些数据算法的符号 算术运算符分为单目运算符.双目运算符.三目运算符. 单目运算符有:+(取正)-(取负)++(自增)--(自减)代码如

Java网络编程基础(六)— 基于TCP的NIO简单聊天系统

在Java网络编程基础(四)中提到了基于Socket的TCP/IP简单聊天系统实现了一个多客户端之间护法消息的简单聊天系统.其服务端采用了多线程来处理多个客户端的消息发送,并转发给目的用户.但是由于它是基于Socket的,因此是阻塞的. 本节我们将通过SocketChannel和ServerSocketChannel来实现同样的功能. 1.客户端输入消息的格式 username:msg    username表示要发送的的用户名,msg为发送内容,以冒号分割 2.实现思路 实现思路与Java网络

LINUX下C语言编程基础

实验二 Linux下C语言编程基础 一.实验目的 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用gdb调试技术 6. 熟悉makefile基本原理及语法规范 7. 掌握静态库和动态库的生成 二.实验步骤 1. 快捷键 Ubuntu中: 2. vim VIM是一个非常好的文本编辑器,很多专业程序员使用VIM编辑代码,即使以后你不编写程序,只要跟文本打交道,都应该学学VIM,可以浏览参考一下普通人

Java语言的基础知识

第三章 1.在java源文件编辑器中,选择某个成员变量,然后按住shift+alt+j,Eclipse会自动添加JavaDoc文档注释结构,如果选择的是方法,还会自动添加参数名称. 2.Java语言规定标示符是由任意的字母.下划线.美元符号和数字组成,并且第一个字符不能使数字,标示符不能使java中的保留关键字. 3.在Java语言中允许使用汉字或其他语言文字作为变量名,如int 年龄 =21;在程序运行时不会报错,但建议尽量不要使用这些语言作为变量. 4.java用关键字final来声明常量,

JAVA学习(五):Java面向对象编程基础

Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目的. 1.OOP的3个特性(封装.继承和多态性) 封装是类的基础.指把类的相关实现细节隐藏起来,在类中将数据和实现操作的代码集中起来放在对象的内部.调用这些类时仅仅需直接使用类预留的接口就能够了. 继承提供了子类自己主动拥有父类数据结构和方法的机制.它表示类之间的一种关系. 多态指使一个对象被看成还

Java语言的基础知识4

第五章(数组) 1.在Java中可以将数组看做是一个对象虽然基本数据类型不是对象但有基本数据类型组成的数组是对象. 2.对于二维数组求第二维就用array[0].length, array.length就是默认的是第一维的长度. 3.foreach并不是一个新的语法它是for的循环的格式化主要执行遍历功能的循环,example: int arry ={1,2,3,4,5}; for(int i :array){ system.out.println(): } 4.数组元素定义完以后可通过Arra

2.1JAVA基础复习——JAVA语言的基础组成注释和常量变量

/** 这是 JAVA中独有的多行注释 */ JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号. 6.语句:程序中常用的一些语句. 7.函数:也叫做方法,用来做一些特定的动作. 8.数组:用来存储多个数据的集合. JAVA中的注释: 注释还可以用来缩小程序错误的范围,方便查找错误. // :表示单行注释. //这是一个单行注释 /**/:表示多行

Java语言的基础知识12

第十四章(使用集合类保存对象) 1.java中得集合对象就像是一个容器,它用来存放Java类的对象.Java中的集合类有些方便存入和取出,有些则方便查找.集合类和数组的区别是,数组的长度是固定的,集合的长度是可变的,数组用来存放基本类型,集合用来存放对象的引用.常用的集合类有List集合,Set集合,和Map集合. 2.List集合包括List接口以及List接口的所有实现类.List集合中的元素许重复,个元素的顺序就是对象插入的顺序.类似java中的数组.List类继承了Collection接

Java多线程编程基础之线程对象

在进入java平台的线程对象之前,基于基础篇(一)的一些问题,我先插入两个基本概念. [线程的并发与并行] 在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent).而在多CPU系统中,可以让两个以上的线程同时运行,这种可以同时让两个以上线程同时运行的方式叫做并行(parallel). 在上面包括以后的所有论述中,请各位朋友谅解,我无法用最准确的词语来定义储