第2章Java语言基础
来源:互联网 发布:关于网络舆论的法律 编辑:程序博客网 时间:2024/05/20 16:13
2.1 字符
1.什么是java的字符?
字符的关键字是char
字符串是String
2.常见字符集的几种方式,他们各有什么特点?
1、最早在dos下写pascal的时候,就遇到ASCII字符集,后来还是dos下写c,也是ascii字符集
特点:目前最通用的单字节编码字符集
表示:单字节
最早ascii用7bit表示,总共能表示2^7=128个字符,后来扩展到8bit,就表示2^8=256个字符
2、GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施。
特点:当然是能表示99%的中国汉字,还包括拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母等
表示:双字节
3、Unicode野心更大(当然有一个国际统一标准当然是好事)
特点:Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
表示:utf-8,utf-16,utf-32
这里可能有点不好理解,举个例子
首先,把unicode理解成对所有字符做了一个统一的编号,比如:“字”这个字符,编号是23383,这个是unicode定义的
但是,在计算机中,如何存储这个编号呢?方式就有很多,存储unicode的方式,就是utf-8,utf-16,utf-32
23383数值的16进制表示:0x5b57
utf-8用3个字节来表示汉字,所以utf-8的表示为:0xE5AD97
utf-16用2个字节来表示汉字,所以utf-16的表示为:0x5b57 刚好和数值是一样的
utf-32用4个字节来表示汉字,所以utf-32的表示为:0x00005b57 和数值是一样的,不过浪费空间
1.java标识符的是由什么组成方式?
标识符就是用于给 Java 程序中变量、类、方法等命名的符号。例:
使用标识符时,需要遵守几条规则:
1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头。譬如:123name 就是不合法滴
2. 标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用 void 作为标识符,但是 Myvoid 可以
3. 标识符是严格区分大小写的。 所以涅,一定要分清楚 imooc 和 IMooc 是两个不同的标识符哦!
4. 标识符的命名最好能反映出其作用,做到见名知意。
Java 语言中有一些具有特殊用途的词被称为关键字。
Java 中常用关键字:
3.什么是关键字?
关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。
Java语言规定关键字不能作为标识符。目前共有50个Java关键字,其中,"const"和"goto"这两个关键字在Java语言中并没有具体含义。Java语言把它们列为关键字,只是因为"const"和"goto"是其他某些计算机语言的关键字。
2.2变量与常量
1.什么是变量?变量的语法是什么?
1、变量:
定义:值可改变的量
例如:
a,a1,name等都是合法的变量。
说明:
1)Java要求在使用一个变量之前要对变量的类型加以声明。
2)Java中一个变量的声明就是一条完整的Java语句,所以应该在结尾使用分号。
3)变量的命名规则:
变量必须以一个字母开头。
变量名是由一系列字母或数位的任意组合。
在Java中字母表示Unicode中相当于一个字母的任何字符。
数位也包含0-9以外的其他地位与一个数位相当的任何Unicode字符。
+、版权信息符号圈C和空格不能在变量名中使用。
变量名区分大小写。
变量名的长度基本上没有限制。
如想知道Java到目前位置认为哪些Unicode字符是字母的话,可以使用Character类中的isJavaIdentifierStart以及isJavaIdentifierPart方法进行检查。
变量名中不能使用Java的保留字。
4)可在一条语句中进行多个变量的声明,不同变量之间用逗号分隔。
2.如何声明变量和赋初值,有几种方式?
变量的值可以通过两种方法获得,一种是赋值,给一个变量赋值需要使用赋值语句。另外一种方法就是初始化,说是初始化,其实还是一个赋值语句,只不过这个赋值语句是在声明变量的时候就一起完成的。
例如:
int a =10; //这就是一个变量初始化的过程
下面两条语句的功能和上面一条的功能相同,只是这里将变量的声明和赋值分开来进行的。
int a;
a =10; //在赋值语句的结尾应该是用分号来结束。
说明:
1)在Java中绝对不能出现未初始化的变量,在使用一个变量前必须给变量赋值。
2)声明可以在代码内的任何一个位置出现,但在方法的任何代码块内只可对一个变量声明一次。
3.什么是常量,如何定义常量?语法是什么?定义时需要注意什么?
定义:值不变的量称为常量。
例如:
1,“hello”
说明:
1)在Java中使用final关键字来定义一个常数。
Final int a=10; //声明了一个整型常量a,它的值是10。
2)习惯上将常量的名字统统大写。
4.变量作用域是什么?根据作用域不同变量可以分成几种?
按照变量的作用域来分,变量可分为两种,即局部变量和全局变量.
局部变量也称为内部变量.局部变量是在函数内作定义说明的.其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的.
全局变量也称为外部变量,它是在函数外部定义的变量. 它不属于哪一个函数,它属于一个源程序文件.其作用域是整个源程序.
2.3数据类型
1.Java有那些基本数据类型?各种基本数据类型的大小和取值范围是什么?
整型 int 整数
浮点型有float和double两种类型,Java中默认为double类型,所以在声明float类型时,所赋的值后需加F或者f
float:long类型在内存占32位,表示范围为:1.4E-45~3.4028235E38double:double类型在内存占64位,表示数据范围为:4.9E-324~1.7976931348623157E308在给变量赋值时一定要注意变量的类型,不然可能会造成一些编译错误,或者精度缺失
字符型 char
字符型就是单个字符,用单引号引起来
一般有三种表示形式
1.单个字符:'A','B'
2.转义字符:'/n','/t'
3.unicode值:'/uxxxx'
布尔型 boolean
Java里表示真或假只用true或者false,不会像其他语言一样出现1表示真,0表示假的情况。
3.转义字符有那些?在程序中如何使用?
转移字符常用的就是以下几个:
\0 :字符串结束标志;
\n :换行(ascⅱ码为10);
\t :横向跳格;
\b :退格;
\r :回车(ascⅱ码为13);
\f :走纸换页;
\\ :字符\(ascⅱ码为92);
\' :单引号;
'\"':双引号;
\ddd:用8进制表示字符;
\xhh:用16进制表示字符
转义字符就是将一些字符转换成特殊的字符,因为在使用字符时会用到单引号或双引号,如果没有了转义字符这类常量,会导致系统在字符弄混,系统不能识别回车等符号,所以采用转义字符。
4.类型转换的方式有哪几种?每种方式如何转换?
1.自动类型转换
低级变量可以直接转换为高级变量,笔者称之为自动类型转换,例如,下面的语句可以在Java中直接通过:
byte b;int i=b;long l=b;float f=b;doubled=b;
如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如
char c='c'; int i=c; System.out.println("output:"+i);
输出:output:99;
对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short i=99;char c=(char)i;System.out.println("output:"+c);
输出:output:c;
byte,short,int三种类型都是整型,因此如果操作整型数据时,最好统一使用int型。
2强制类型转换
将高级变量转换为低级变量时,情况会复杂一些,你可以使用强制类型转换。即你必须采用下面这种语句格式:
int i=99;byte b=(byte)i;charc=(char)i;float f=(float)i;
可以想象,这种转换肯定可能会导致溢出或精度的下降,因此并不推荐使用这种转换。
注意强制转换不同数据类型数据赋值后,被赋值的变量的数值(精度丢失).
2.4操作符
1.一元操作符有哪些?怎样使用?
2.++/--的使用 a++和++a的区别?
1. 一元减法操作符-
一元减法操作符返回的是其操作数的负值。操作数必须是一个数字基本类型,或者是一个数字基本类型的变量。
2. 一元加法操作符+
这个操作符返回的是其操作数的值。操作数必须是一个数字基本类型,或者是一个数字基本类型的变量。
3. 递增操作符++
这个操作符将其操作数的值递增一。它的操作数必须是数字基本类型的变量。这个操作符可以放在操作数之前或之后。如果操作符放在操作数之前,就称做前缀递增操作符。如果把它写在操作数之后,就变成了后缀递增操作符。
4. 递减操作符--
这个操作符是将其操作数的值递减一。它的操作数必须是一种数字基本类型的一个变量。和递增操作符一样,它也有前缀递减操作符和后缀递减操作符。
5. 逻辑求补操作符!
这个操作符只能应用于boolean基本类型,或者java.lang.Boolean的一个实例。如果操作数为false,那么这个操作符的值便为true,如果操作符为true,那么它的值便为false。
6. 按位求补操作符~
这个操作符的操作数必须是一个整数基本类型,或者是一个整数基本类型的变量。其结果是这个操作数的按位补数。
1.关系运算符:> < >= <= == !=,运算结果的数据类型是什么?
boolean
1. 逻辑运算符:&& || 他们是如何运算的?
1,逻辑运算符:
&& 逻辑与,可以理解为并且的意思.
|| 逻辑或,可以理解为或者的意思,也就是条件可以2取一
! 逻辑非 (一元表达式)
2,逻辑与运算:&&
逻辑与连接的2个表达式,要能够求解成bool类型,一般情况下都是关系表达式.
整个逻辑与运算结果也是bool类型
bool isRight=表达式1&&表达式2 :当表达式1、2全为true时,其表达式的结果为true.
综上所述,只有当2个表达式全为True时,其结果才能为True.
输出结果:Ture.
3,逻辑或运算:||
逻辑或连接的2个表达式,要能够求解成bool类型,一般情况下都是关系表达式.
整个逻辑或运算结果也是bool类型
bool isRight=表达式1||表达式2:当表达式1、2中有一个为true ,其表达式的结果为true.
综上所述,只要有1个表达式为True时,其结果都为True.
4,逻辑非运算(取反):!(这是一个一元运算符)
用法:
!(布尔类型的表达式)
作用:
如果布尔类型的表达式为True,加!后其整个式子的结果为False.
如果布尔类型的表达式为False,加!后其整个式子的结果为True.
2.三元运算符的语法(注意不同数据类型的变量比较时).
格式
•(条件表达式)?表达式1:表达式2;
•如果条件为true,运算后的结果是表达式1;
•如果条件为false,运算后的结果是表达式2;
示例:
•获取两个数中大数。
•int x=3,y=4,z;
•z = (x>y)?x:y;//z变量存储的就是两个数的大数
2.5流程控制
2.分支语句有哪几种?
如下两种
if switch
2. if有哪几种类型?每一种类型的执行流程是什么样的?
if判断
if…….else分支
if…….if嵌套
3. switch和if的区别,swith语句后面的控制表达式的数据类型有哪几种?
4种:byte short int char
4. switch程序的执行过程是什么样的?
先执行第一个case,直到遇到break结束
1.循环结构有哪几种?
如下三种
for whiledo…while
2.for循环语句的语法,写此循环时有什么需要注意的?他的执行流程是什么?
先是赋初值,再判断,执行语句,赋值再次判断,重复此过程
1.while循环语法,执行流程是什么?
先判断再循环
2.do-while循环语法,执行流程是什么?
先循环一次再判断
1. 转移语句有哪几种?每一种转移语句的用法?
break跳出
continue结束本次循环,继续下次循环。
return 返回结果
2.6一维数组
1.什么是数组,数组如何创建?
2.初始化数组的两种方式?
在JAVA中创建数组有两种方式
(1)静态创建 如String[]array = {"a", "b", "c"};
(2)动态创建 如String[]array = new String[] {"a", "b", "c"};或String[] array = new String[3];(先确认元素个数)
一般情况下习惯使用动态创建方式 比较灵活 可以先规定元素个数 后对每个元素进行赋值
1.foreach的用法.
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach 语法格式如下:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}
public static void foreachDisplay(int[]data){ System.out.println("使用 foreach 循环数组"); for (int a : data) { System.out.print(a+ ""); } }
- 第2章 Java语言基础
- 第2章 Java语言基础
- 第2章 Java语言基础
- 第2章Java语言基础
- 第2章 JavaScript语言基础(上)
- 第2章 JavaScript语言基础(中)
- 第2章 JavaScript语言基础(下)
- 第2章 Object Pascal语言基础
- 第2章 C++语言基础
- 第2章 Java基础
- 第二章:Java语言基础I 第21节课程
- 黑马程序员-Java语言基础 第2天
- 第三章:Java语言基础II 第2\3\4节 For入门(求和思想)
- JAVA语言基础第一天学习
- JAVA语言基础学习第三天
- Java语言基础2
- 2 Java语言基础
- 第2章Java语法基础
- 复杂的CSS选择器
- 步步扎进Java-多线程
- Android编程权威指南(第二版)学习笔记(十八)—— 第18章 Assets
- 142. Linked List Cycle II
- Linux终端下 dstat 监控工具
- 第2章Java语言基础
- 关于js的callback回调函数以及嵌套回调函数的执行过程理解
- 运行sosreport导致OL7.3操作系统crash
- 使用IDEA创建Struts项目
- 153. Find Minimum in Rotated Sorted Array
- 209. Minimum Size Subarray Sum
- html,css简单仿站之建材网
- JAVA高精度1_大数相加_阶乘
- 重心-[Codeforces709E] Centroids