Java基本语言要素
来源:互联网 发布:viso软件流程图步骤 编辑:程序博客网 时间:2024/05/16 23:51
1.标识符
(1)标识符由大小写字母、数字、下划线“_”和美元符“$”组成,但是不能以数字开头
(2)Java严格区分大小写java和Java是完全不一样的2个标识符
(3)标识符不能使用Java的关键字
标识符命名习惯:
包名:使用小写字母a-z
类名和接口名:所有字母首字母大写如HelloWorld
方法名:第一个单词的首字母小写,其他单词首字母大写如getAge
变量名:成员变量和方法相同,局部变量全部使用小写
常量名:全部使用大写,最好使用下划线分隔单词
2.注释
Java有三种注释方式分别是
(1)单行注释
//哈哈你好(2)多行注释
/*你好哈哈*/(3)文档注释
/**哈哈你好*/(2)和(3)的主要区别是(3)会写入 javadoc文档,一般用于类说明,作者信息等地方注释
3.基本数据类型
(1)整数类型
注意(如果定义长整型时需在数字后面加“L”或者"l",如long a=10L;)
Java中八进制以0开头,011代表的是十进制的9而不是11。十六进制以0x开头,0x11表示的是十进制的17而不是11,注意区分。
(2)浮点类型
注意(使用单精度浮点类型必须在数值后面跟上f或者F如 float f=3.14 f; 这和long是一样的,双精度浮点类型可加D或者d,也可以不加,因为双精度浮点类型是默认形式)
(3)布尔类型(boolean)
真:true,假:false 用于判断逻辑条件
注意(C、C++常用1和0来表示真假,在java里面不适用)
(4)字符类型(char)
字符类型数据用于表示单个字符,注意与字符串区分开,字符用单引号表示如'a',而字符串用双引号表示如"a"
字符类型可以和数值类型相互赋值,如为了输出字符’a',可以用以下2种方式
char ch=97;//因为字符'a'在unicode编码是97通过赋值直接打印出来System.out.println(ch);转义字符输出
System.out.println('\u0061');//‘a’的16进制是0x61System.out.println('\141');//‘a’的8进制是0141
4.数据类型转换
(1)自动类型转换
必须满足2个条件,1、转换数据类型必须兼容2、自动转换总是从低位类型到高位类型(这里的低位类型和高位类型分别指小的取值范围和大的取值范围)
public class MyTest{public static void main(String[] args){ short sInt=5;//定义一个short类型变量 int iInt=sInt;//short自动类型转换为int System.out.println("short自动类型转换为int后的值="+sInt); float f=1.0f;//定义一个float类型变量 double d1=f;//float自动类型转换为double System.out.println("float自动类型转换为double的值="+d1); long l=542L;//定义一个long类型变量 double d2=l;//long自动类型转换为double System.out.println("long自动类型转换为double的值="+d2); int i=54211000;//定义一个int类型变量 float d=i;//int自动类型转换为float System.out.println("int自动类型转换为float的值="+d); }}输出
short自动类型转换为int后的值=5
float自动类型转换为double的值=1.0
long自动类型转换为double的值=542.0
int自动类型转换为float的值=5.4211E7
(2)强制类型转换
强制类型转换的转换数据类型也必须兼容,转换类型变成了从高位类型到低位类型,转换形式是(type)value;其中type是要强制转换后的数据类型
注意(进行强制转换因为是从大范围转换为小范围,所以当数值可能大于小范围最大值时就要特别注意数据可能会丢失)
public class MyTest{public static void main(String[] args){int i1=128;//定义一个Int类型byte b=(byte)i1;//强制类型转换byteSystem.out.println("int 强制类型转换byte后值等于"+b);double d=123.456;//定义一个double类型int i2=(int)d; //强制类型转换intSystem.out.println("double 强制类型转换int后值等于"+i2); char c1='A';//定义一个char类型int i=c1+1;//char类型和int类型计算char c2=(char)i;//进行强制类型转换System.out.println("int 强制类型转换 char 后值等于"+c2);}}输出
int 强制类型转换byte后值等于-128
double 强制类型转换int后值等于123
int 强制类型转换 char 后值等于B
(3)隐含强制类型转换
byte=123;
整数的默认数据类型是int,隐含强制转换为byte类型,由Java系统自动完成,而浮点类型是不存在这种情况的所以float后面必须跟上F或者f
5.运算符和表达式
public class MyTest{public static void main(String[] args){int i1=8;int i2=8;//加减乘除求余运算int jia=i1+i2;//进行加运算int jian=i1-i2;//进行减运算int cheng=i1*i2;//进行乘运算int chu=i1/i2; //进行除运算 int qiuyu=i1%i2;//进行求余运算 System.out.println("进行加运算后值等于"+jia);System.out.println("进行减运算后值等于"+jian);System.out.println("进行乘运算后值等于"+cheng);System.out.println("进行除运算后值等于"+chu);System.out.println("进行求余运算后值等于"+qiuyu);//自增自减运算符int a=3;System.out.println("a的值等于"+a);//a++先调用a值再++System.out.println("a++的值等于"+(a++)+" a++后a的值等于"+a);//++a先++再调用a值System.out.println("++a的值等于"+(++a)+" ++a后a的值等于"+a);//a--先调用a值再--System.out.println("a--的值等于"+(a--)+" a--后a的值等于"+a);//--a先--再调用a值System.out.println("--a的值等于"+(--a)+" --a后a的值等于"+a);//位运算符 int m=3;//二进制为0000..0011因为是int是32位所以0011前面还有28个0 int n=5;//二进制为0000..0101因为是int是32位所以0101前面还有28个0 //与&运算如果相对应位都是1则结果为1否则0,m & n为0000..0001System.out.println("m & n等于"+(m & n));//或|运算如果相对应位都是0则结果为0否则1,m | n为0000..0111System.out.println("m | n等于"+(m | n));//异或^运算如果相对应位值相同则结果为0否则1,m ^ n为0000..0110System.out.println("m ^ n等于"+(m ^ n));/* 非~将操作数每一位按位取反,~m为1111..1100 ~n为1111..1010 因为负数是以补码形式存储的,以1111..1100为例符号位不变求反1000..0011, 再加1得到的补码是1000..0100即-4 */System.out.println("~m等于"+~m+" ~n等于"+~n);//移位运算符/* 左移运算符将第一个操作数的比特位向左移动第二个操作数 指定的位数右边空缺的位用0补充 右移运算符将第一个操作数的比特位向右移动第二个操作数 指定的位数,移位后第一个操作数负数还是负数,正数还是正数 无符号右移运算符将第一个操作数的比特位向右移动第二个操作数 指定的位数,移位后不管原来是正还是负都用0填充 */int num=6;//0000..0110//6左移1位变成0000..1100System.out.println("6左移1位等于"+(num<<1));//6右移1位变成0000..0011System.out.println("6右移1位等于"+(num>>1));num=-8;//-8即1111..1000无符号右移1位变成0111..1100System.out.println("-8无符号右移1等于"+(num>>>1));/* 逻辑运算符 非短路逻辑操作符:&(与运算),^(异或运算),|(或运算)。 进行逻辑&或者|运算时,不管操作符两边的条件表达式成不成立, 都进行运算判断 短路逻辑操作符:&&(并且),||(或者). 如果操作符左侧就可以判断出结果就不会再进行右侧的判断 */ //到1<0已经知道逻辑为假了就不会再进行右侧的判断boolean b1=((1<0)&&(1/0>0));if(b1==true)System.out.println("结果为真");elseSystem.out.println("结果为假");//这个会报错,不管操作符两边的条件表达式成不成立,都进行运算/*boolean b2=((1<0)&(1/0>0));if(b2==true)System.out.println("结果为真");elseSystem.out.println("结果为假");*//* 三元运算符 expression?statement1:statement2 条件?真时执行操作:假时执行操作 */System.out.println("5大于3吗?"+(5>3 ? "大于" : "不大于"));}}
参考文献:
Java从入门到精通 高宏静
Java面向对象编程 孙卫琴
- Java基本语言要素
- 磨刀不误砍材工 - Java的基础语言要素(从变量/常量切入,看8种基本数据类型)
- Java语言基础-1.基础语言要素
- java与.net比较学习系列(2) 基础语言要素
- 磨刀不误砍材工 - Java的基础语言要素(关键字)
- 磨刀不误砍材工 - Java的基础语言要素(语句-深入理解)
- 磨刀不误砍材工 - Java的基础语言要素(数组)
- C语言要素总结
- C#语言要素
- 基础语言要素
- java语言基本数据类型
- java语言基本组成
- Java语言基本语法
- 基本Java语言特性
- java基本语言元素
- Java学习---基本语言
- CGI的基本编程要素
- PL/SQL基本语法要素
- CGLIB实现动态代理
- 黑马程序员——交通灯调度系统
- 谈谈大家对PHP框架的各种误解
- reshape函数—— Matlab和opencv的reshape函数 不同点
- aspupload 上传组件下载
- Java基本语言要素
- EntityManager方法简介
- 动态密码锁
- 夯实基础——归并排序
- Spring 表达式语言 (一)
- 如何突破底层思维方式的牢笼
- 计数排序
- CABasicAnimation的基本使用方法(移动·旋转·放大·缩小)
- setTimeout原理