java基础程序设计

一、完成的目标

  1. 1. 掌握java中的数据类型划分
  2. 2. 8种基本数据类型的使用及数据类型转换
  3. 3. 位运算、运算符、表达式
  4. 4. 判断、循环语句的使用
  5. 5. breakcontinue的区别

二、数据类型划分

java的数据类型可分为基本数据类型引用数据类型。基本数据类型包括了最基本的boolean、char、byte、short、int、long、float、double;引用数据类型是以一种特殊的方式指向变量的实体,这种机制类似于C/C++.

三、基本数据类型

java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。

  1. byte 1个字节
  2. short 2个字节
  3. int 4个字节
  4. long 8个字节
  5. float 4个字节
  6. double 8个字节
  7. char 2个字节

范围:

默认值:

数据溢出

  1. public class DataDemo01{
  2. public static void main(String [] args){
  3. int max = Integer.MAX_VALUE; //得到整数的最大值
  4. System.out.println("整数的最大值:"+max); //输出最大值
  5. System.out.println("整数的最大值+1:"+(max+1)); //输出最大值+1
  6. System.out.println("整数的最大值+2:"+(max+2)); //输出最大值+2
  7. }
  8. }
  9. Process started >>>
  10. 整数的最大值:2147483647
  11. 整数的最大值+1:-2147483648
  12. 整数的最大值+2:-2147483647
  13. <<< Process finished. (Exit code 0)

整数类型

当数据不带有分数或者小数时,可以声明整型变量。如35,-140。 在java中,整数类型可分为byte、short、int、long。对于一个整型常量,其类型默认就是int型。

字符类型(char)

字符类型在内存中占有两个字节,可以用来保存英文字母等字符。 字符要用一对单引号('')括起

  1. /**
  2. *1.声明字符类型的变量ch1,ch2
  3. *2.将变量ch1的值设为字符b,ch2的值设为98
  4. *3.输出字符变量ch1、ch2的内容
  5. */
  6. class TestDemo01{
  7. public static void main(String [] args){
  8. char ch1 = 'b'; //定义字符
  9. char ch2 = 98; //定义字符,整型转字符
  10. System.out.println("ch1 = "+ch1); //输出
  11. System.out.println("ch2 = "+ch2);
  12. }
  13. }
  14. Process started >>>
  15. ch1 = b
  16. ch2 = b
  17. <<< Process finished. (Exit code 0)

转义字符

  1. /**
  2. *1.声明字符类型的变量ch1,ch2
  3. *2.将变量ch1的值设为\",ch2的值设为\\
  4. *3.输出字符变量ch1、ch2的内容,在打印的字符串中直接加入转义字符
  5. */
  6. class TestDemo02{
  7. public static void main(String [] args){
  8. char ch1 = '\"'; //定义转义字符双引号
  9. char ch2 = '\\'; //定义转义字符反斜线
  10. System.out.println("ch1 = "+ch1); //输出
  11. System.out.println("ch2 = "+ch2);
  12. System.out.println("\"Hello World\""); //直接输出转义字符
  13. }
  14. }
  15. Process started >>>
  16. ch1 = "
  17. ch2 = \
  18. "Hello World"
  19. <<< Process finished. (Exit code 0)

浮点数类型(float,double) 
在java中,带有小数点的数值称为浮点数类型。使用浮点型数值时,默认类型是double。

  1. /**
  2. *1.声明浮点型的变量 num1,num2
  3. *2.将变量 num1 的值设为4.0,num2的值设为3.0f
  4. *3.输出num1*num1、num2*num2的值
  5. */
  6. class TestDemo01{
  7. public static void main(String [] args){
  8. float num1 = 4.0; //定义float型变量
  9. float num2 = 3.0f; //定义float型变量
  10. System.out.println("两个小数相乘 "+num1*num1); //计算两数相乘
  11. System.out.println("两个小数相乘 "+num2*num2); //计算两数相乘
  12. }
  13. }
  14. Process started >>>
  15. E:\TestDemo01.java:34: 错误: 不兼容的类型: double转换到float可能会有损失
  16. float num1 = 4.0; //定义浮点数
  17. ^
  18. 1 个错误
  19. <<< Process finished. (Exit code 1)
  20. float num1 = 4.0;改为float num1 = 4.0f;
  21. Process started >>>
  22. 两个小数相乘 16.0
  23. 两个小数相乘 9.0
  24. <<< Process finished. (Exit code 0)

布尔类型(boolean) 
布尔(boolean)类型的变量,只有true(真)和false(假)两种。

  1. /**
  2. *1.声明boolean变量,并赋值true
  3. *2.通常用来控制程序的流程
  4. */
  5. class TestDemo01{
  6. public static void main(String [] args){
  7. boolean flag = true; //定义boolean变量
  8. System.out.println("flag="+flag); //输出
  9. }
  10. }

四、数据类型的转换

数据类型自动转换
byte--->short--->int--->long--->float--->double
--------char---> int

  1. /**
  2. *1.数据类型转换
  3. */
  4. public class DataDemo02{
  5. public static void main(String [] args){
  6. int x = 30; //定义整型变量
  7. float y = 22.19f; //定义浮点型变量
  8. System.out.println("x/y= " + (x/y) ); //整型变量除以浮点型变量-float类型
  9. System.out.println("10/0.35= "+(10/0.35)); //整型常量除以浮点型常量-浮点数据
  10. System.out.println("10/3= "+(10/3)); //整型常量除以整型常量-整型,小数部分被忽略
  11. }
  12. }
  13. Process started >>>
  14. x/y= 1.3519603
  15. 10/0.35= 28.571428571428573
  16. 10/3= 3
  17. <<< Process finished. (Exit code 0)

任何类型的数据都向String转型

  1. /**
  2. *1.定义字符串变量
  3. *2.任何数据类型碰到String类型的变量或者常量之后都向String类型转换
  4. */
  5. public class DataDemo03{
  6. public static void main(String [] args){
  7. String str = "billy"; //定义字符串变量
  8. int x = 10; //定义整型变量
  9. str = str + x; //改变字符串的内容
  10. System.out.println("str = "+ str ); //输出
  11. int i = 1;
  12. int j = 2;
  13. System.out.println("i + j = "+ i + j ); //输出 + 表示字符串连接
  14. }
  15. }
  16. Process started >>>
  17. str = billy10
  18. i + j = 12
  19. <<< Process finished. (Exit code 0)

数据类型强制转换(显示转换) 
显示转换可能导致数据丢失,语法:(要转换的数据类型) 变量名称

  1. /**
  2. *1.数据类型强制转换
  3. */
  4. public class DataDemo04{
  5. public static void main(String [] args){
  6. float f = 3.15f; //定义浮点型变量
  7. int x = (int)f; //强制转换int型变量
  8. System.out.println("x = "+ x ); //输出
  9. System.out.println("10/3 = "+ ((float)10/3 ) ); //常量计算使用强制类型转换
  10. }
  11. }
  12. Process started >>>
  13. x = 3
  14. 10/3 = 3.3333333
  15. <<< Process finished. (Exit code 0)

五、运算符、表达式与语句

运算符
赋值运算符 (=)
一元运算符(+ - !)
算术运算符(+ - * / %(取模 即:取余数))
关系运算符(> < >= <= == !=)
自增 自减 运算符 (++,-- )
逻辑运算符(&&,||,&,|)

  1. 对于&(与)来说,要求所有的条件都判断,而如果使用&&(短路与)如果第一个条件为false,则后面的条件将不再判断。
  2. 对于|(或)来说,要求所有的条件都判断,而如果使用||(短路或)如果第一个条件为true,则后面的条件将不再判断。

括号运算符(())
位运算符(&,|,^(异或),~,<<(左移),>>(右移),>>>(无符号右移))
运算符优先级


简洁表达式


范例:

六、选择与循环语句

一般来说程序的结构包括以下三种:顺序结构、选择结构、循环结构。这三种不同的结构有一个共同点,都只有一个入口,也只有一个出口。
顺序结构 
程序至上而下逐行执行,一条语句执行完之后继续执行下一条语句,一直到程序的末尾。 
 
选择结构 
根据条件的成立与否决定要执行哪些语句的一种结构。选择结构包括if、if...else、switch。

if语句

if(判断条件){
语句1;
语句2;
}

  1. /**
  2. *1.验证选择结构
  3. */
  4. public class TestDemo05{
  5. public static void main(String [] args){
  6. int x = 3; //定义整型变量x
  7. int y = 5; //定义整型变量y
  8. System.out.println("**开始比较两个数的大小**");
  9. if(x > y){ //判断x是否比y大
  10. System.out.println("x比y大!");
  11. }
  12. if(x<y){ //判断x是否比y小
  13. System.out.println("x比y小!");
  14. }
  15. System.out.println("**比较完成**");
  16. }
  17. }
  18. Process started >>>
  19. **开始比较两个数的大小**
  20. xy小!
  21. **比较完成**
  22. <<< Process finished. (Exit code 0)

if...else语句

if(判断条件){
语句主体1; 
}else{
语句主体2; 
}

  1. /**
  2. *1.判断一个数的是奇数还是偶数
  3. *2.判断余数是否为1
  4. */
  5. class TestDemo05{
  6. public static void main(String [] args){
  7. int x = 4; //定义整型变量x
  8. if(x % 2 == 1){ //判断余数是否为1
  9. System.out.println("x是奇数!");
  10. }else{
  11. System.out.println("x是偶数!");
  12. }
  13. }
  14. }
  15. Process started >>>
  16. x是偶数!
  17. <<< Process finished. (Exit code 0)

三目运算符(? : )

变量 = 条件判断?表达式1:表达式2 
根据条件的成立与否,来决定结果为“:”前或“:”后的表达式,如果条件判断为true,则执行表达式1,为false则执行表达式2

  1. /**
  2. *1.使用三目运算符求出两个数字的最大值
  3. */
  4. class TestDemo05{
  5. public static void main(String [] args){
  6. int max = 0; //定义变量保存最大值
  7. int x = 4; //定义整型变量x
  8. int y = 10; //定义整型变量y
  9. max = (x>y)?x:y;
  10. System.out.println("最大值为:"+max); //输出max
  11. }
  12. }
  13. Process started >>>
  14. 最大值为:10
  15. <<< Process finished. (Exit code 0)

if...else if...else语句

如果需要在if..else里判断多个条件时,就需要if..else if … else语句了,其格式如下:

if(判断条件1){
语句主体1; 
}else if(判断条件2){
语句主体2; 

...//多个else if()语句
else{ 语句主体3; }

  1. class TestDemo05{
  2. public static void main(String [] args){
  3. int x = 4; //定义整型变量x
  4. if(x==2){ //判断x的值是否为2
  5. System.out.println("x的值是2");
  6. }else if(x==3){ //判断x的值是否为3
  7. System.out.println("x的值是3");
  8. }else if(x==4){ //判断x的值是否为4
  9. System.out.println("x的值是4");
  10. }
  11. }
  12. }
  13. Process started >>>
  14. x的值是4
  15. <<< Process finished. (Exit code 0)

Switch结构

要在许多的选择条件中找到并执行其中一个符合判断条件的语句时,除了可以使用if..else不断地判断之外,也可以使用另一种更方便的方式即多重选择——switch语句,语法格式:

switch (表达式){
case 选择值1 : 语句主体 1 ; break ;
case 选择值2 : 语句主体 2 ; break ;
…….
case 选择值n : 语句主体 n ; break ; 
default: 语句主体 ;

要特别注意的是,在Switch语句中选择值只能是字符或常量。

  1. /**
  2. *1.判断学生成绩,并给出等级A(90~100),B(>80),C(>70),D(>60),E(0~59)
  3. */
  4. class TestDemo05{
  5. public static void main(String [] args){
  6. int Score = 85; //定义一个学生的分数
  7. switch (Score/10){
  8. case 10:
  9. case 9: System.out.println("A级"); break;
  10. case 8: System.out.println("B级"); break;
  11. case 7: System.out.println("C级"); break;
  12. case 6: System.out.println("D级"); break;
  13. default: System.out.println("E级"); break;
  14. }
  15. }
  16. }
  17. Process started >>>
  18. B
  19. <<< Process finished. (Exit code 0)
  20. /*
  21. *每一个case语句后面都加上了一个break语句,如果不加入此语句的话,则
  22. *switch语句会从第一个满足条件的case开始依次执行操作。
  23. */
  24. 不加break,则
  25. Process started >>>
  26. B
  27. C
  28. D
  29. E
  30. <<< Process finished. (Exit code 0

循环结构 
循环结构则是根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落就称为循环主体。

while循环

while (循环条件判断){
语句1 ;
语句2 ;

语句n ;
循环条件更改 ;
}

  1. /**
  2. *1.使用while循环进行累加操作
  3. *
  4. */
  5. class TestDemo05{
  6. public static void main(String [] args){
  7. int i = 1; //定义整型变量i
  8. int sum = 0; //定义整型变量,保存累加结果
  9. while(i <= 100){ //判断循环条件
  10. sum = sum + i; //sum + = i; //执行累加结果
  11. i++; //修改循环条件
  12. }
  13. System.out.println("1~100累加和--->"+sum);//输出
  14. }
  15. }
  16. Process started >>>
  17. 1~100累加和--->5050
  18. <<< Process finished. (Exit code 0)

do-while循环

do{
语句1 ;
语句2 ;
….
语句n ;
循环条件改变 ;
}
while (循环条件判断); 

  1. /**
  2. *1.使用do...while循环进行累加操作
  3. *
  4. */
  5. class TestDemo05{
  6. public static void main(String [] args){
  7. int i = 1; //定义整型变量i
  8. int sum = 0; //定义整型变量,保存累加结果
  9. do{ //判断循环条件
  10. sum = sum + i; //sum + = i; //执行累加结果
  11. i++; //修改循环条件
  12. }
  13. while(i <= 100);
  14. System.out.println("1~100累加和--->"+sum);//输出
  15. }
  16. }
  17. Process started >>>
  18. 1~100累加和--->5050
  19. <<< Process finished. (Exit code 0)

for循环

对于while和do…while两种循环来讲,操作时并不一定非要明确的知道循环的次数,而如果开发者已经明确的知道了循环次数的话,那么就可以使用另外一种循环语句——for循环。

for (赋值初值;判断条件;赋值增减量){
语句1 ;
….
语句n ;
}

  1. /**
  2. *1.使用for循环进行累加操作
  3. *
  4. */
  5. class TestDemo05{
  6. public static void main(String [] args){
  7. int sum = 0; //定义整型变量,保存累加结果
  8. for(int i=1;i<=100;i++){
  9. sum = sum + i; //sum + = i; //执行累加结果
  10. }
  11. System.out.println("1~100累加和--->"+sum);//输出
  12. }
  13. }
  14. Process started >>>
  15. 1~100累加和--->5050
  16. <<< Process finished. (Exit code 0)
  17. /**
  18. *1.使用多重for循环打印九九乘法表
  19. *
  20. */
  21. class TestDemo05{
  22. public static void main(String [] args){
  23. for(int i=1;i<=9;i++){ //第一层循环
  24. for(int j=1;j<=i;j++){ //第二层循环
  25. System.out.print(i+"*"+j+"="+(i*j)+"\t");//输出
  26. }
  27. System.out.println();//换行
  28. }
  29. }
  30. }
  31. Process started >>>
  32. 1*1=1
  33. 2*1=2 2*2=4
  34. 3*1=3 3*2=6 3*3=9
  35. 4*1=4 4*2=8 4*3=12 4*4=16
  36. 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
  37. 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
  38. 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
  39. 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
  40. 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
  41. <<< Process finished. (Exit code 0)

循环中断 
break语句 
break语句可以强迫程序中断循环,当程序执行到break语句时,即会离开循环,继续执行循环外的下一个语句,如果break语句出现在嵌套循环中的内层循环,则break 语句只会跳出当前层的循环。

  1. /**
  2. *1.使用break
  3. *
  4. */
  5. class TestDemo05{
  6. public static void main(String [] args){
  7. for(int i=1;i<=9;i++){
  8. if(i==3){ //如果i=3,则退出整个循环
  9. break; //退出整个循环
  10. }
  11. System.out.println("i = " + i);//
  12. }
  13. System.out.println("循环结束");
  14. }
  15. }
  16. Process started >>>
  17. i = 1
  18. i = 2
  19. 循环结束
  20. <<< Process finished. (Exit code 0)

continue语句
continue语句可以强迫程序跳到循环的起始处,当程序运行到continue语句时,即会停止运行剩余的循环主体,而是回到循环的开始处继续运行。

  1. /**
  2. *1.使用continue
  3. *
  4. */
  5. class TestDemo05{
  6. public static void main(String [] args){
  7. for(int i=1;i<=9;i++){
  8. if(i==3){ //如果i=3,则退出整个循环
  9. continue; //退出一次循环
  10. }
  11. System.out.println("i = " + i);//
  12. }
  13. System.out.println("循环结束");
  14. }
  15. }
  16. Process started >>>
  17. i = 1
  18. i = 2
  19. i = 4
  20. i = 5
  21. i = 6
  22. i = 7
  23. i = 8
  24. i = 9
  25. 循环结束
  26. <<< Process finished. (Exit code 0)

注意: 

return语句

结束当前方法的执行并退出,返回调用该方法的语句处。

  1. /**
  2. *1.使用return
  3. *
  4. */
  5. class TestDemo05{
  6. public static void main(String [] args){
  7. for(int i=1;i<=9;i++){
  8. if(i==3){ //如果i=3,则退出整个循环
  9. return; //退出整个方法
  10. }
  11. System.out.println("i = " + i);//
  12. }
  13. System.out.println("循环结束");
  14. }
  15. }
  16. Process started >>>
  17. i = 1
  18. i = 2
  19. <<< Process finished. (Exit code 0)
  20. 可以看到“循环结束”没有输出,当i=3时,满足执行return,结束整个方法的执行。

七、要点

  1. 基本数据类型及其转换
  2. 选择与循环语句

java基础学习03(java基础程序设计)的更多相关文章

  1. 033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结

    033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结 本文知识点:运算符和表达式知识点总结 前面学习的几篇文都是运算符和表达式相关的知 ...

  2. 031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级

    031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级 本文知识点:Java中运算符的优先级 运算符的优先级问题 前面学习了很多的运算符,如果这些 ...

  3. 030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符

    030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符 本文知识点:Java中的条件运算符 条件运算符是Java当中唯一一个三目运算符 什么是三目运算 ...

  4. 023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之——自增自减运算符

    023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之--自增自减运算符 本文知识点:Java算术运算符中的自增自减运算符 自增自减运算符 之前我们 ...

  5. java基础学习总结——java环境变量配置(转)

    只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...

  6. 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题

    032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...

  7. 029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑“非”运算符

    029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑"非"运算符 本文知识点:Java中的逻辑"非"运算符 逻辑& ...

  8. 028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑“或”运算符

    028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑"或"运算符 本文知识点:Java中的逻辑"或"运算符 逻辑& ...

  9. 027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑“与”运算符

    027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑"与"运算符 本文知识点:Java中的逻辑"与"运算符 逻辑运 ...

  10. 026 01 Android 零基础入门 01 Java基础语法 03 Java运算符 06 if-else条件结构

    026 01 Android 零基础入门 01 Java基础语法 03 Java运算符 06 if-else条件结构 本文知识点:Java中的if-else条件结构语句 上文回顾--if条件结构 如果 ...

随机推荐

  1. Linux文件系统的实现

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux文件管理从用户的层面介绍了Linux管理文件的方式.Linux有一个树状 ...

  2. ios 音视频实现边播边缓存的思路和解决方案 (转)

    本片为转载内容,主要是以后自己看起来方便一些 原文地址:iOS音视频实现边下载边播放 其实音视频本地缓存的思想都差不多,都需要一个中间对象来连接播放器和服务器. 近段时间制作视频播放社区的功能,期间查 ...

  3. [摘录]第三部分 IBM文化(2)

    第二十二章 原则性领导 在一个组织程序已经变得不受其来源和内容的约束,而且其编纂出来的组织宗旨已经代替了个人责任的组织之中,你所面临的首要任务,就是要全盘抹掉这个程序本身,以便让整个封闭的系统呼吸新鲜 ...

  4. Memcache缓存系统构建一

    在如今这个高效率的社会中,怎样将这个高效率应用到自己的程序中,是一个值得追寻和值得探讨的问题.因为这个memcache能够很好的提高检索速度,提升用户体验,而且重要的是减少数据库的访问.这就大大的提高 ...

  5. 原创:MD5 32位加密软件

    网站后台数据库切勿使用明文保存密码,否则一旦黑客拿下你的Webshell,后果不堪设想. 网站后台密码加密大多数采用的就是MD5算法加密.今天给大家送一个本人用c#简单编写的MD5 32位加密程序,虽 ...

  6. 跨域之同源策略 Same-origin policy

    同源策略是浏览器中最基本的隔离潜在恶意文件的安全策略,他限制了来自不同源(origin)的文档或脚本之间的相互作用. 何谓同源 在跨域之URL中介绍过一个URL的标准格式如下: 协议类型://服务器地 ...

  7. 数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇

    HT 是啥:Everything you need to create cutting-edge 2D and 3D visualization. 这口号是当年心目中的产品方向,接着就朝这个方向慢慢打 ...

  8. 基于Metronic的Bootstrap开发框架经验总结(14)--条码和二维码的生成及打印处理

    在很多项目里面,对条形码和二维码的生成和打印也是一种很常见的操作,在Web项目里面,我们可以利用JS生成条形码和二维码的组件有很多.本文引入两个比较广泛使用的JS组件,用来处理条形码和二维码的生成处理 ...

  9. WPF's Style BasedOn

    <Style x:Key="BasedStyle" BasedOn="{x:Null}" TargetType="{x:Type Control ...

  10. DropDownList实现可输入可选择

    1.js版本 <div style="z-index: 0; visibility: visible; clip: rect(0px 105px 80px 85px); positio ...