1.变量及基本数据类型

案例1:变量声明及赋值

  1.      //1.变量的声明
  2. int a; //声明一个整型的变量a
  3. int b,c,d; //声明三个整型变量b,c,d
  4.  
  5. //2.变量的初始化
  6. int a = 250; //声明整型变量a并赋值为250
  7.  
  8. //声明整型变量b,然后赋值为250
  9. int b;
  10. b = 250;
  11.  
  12. //3.变量的使用
  13. int a = 5;
  14. int b = b+10; //取出a的值5,加10后赋值给b
  15. System.out.println(b); //输出b的值15
  16. System.out.println("b"); //输出字符串b
  17. a=a+10; //取出a的值5,加上10后再赋值给a
  18. System.out.println(a); //15
  19.  
  20. int c = 3.14; //编译错误,数据类型不匹配
  21. System.out.println(m); //编译错误,m未声明
  22.  
  23. int m;
  24. System.out.println(m); //编译错误,m未初始化
  25.  
  26. //4.变量的命名
  27. int a1,a_5$,$_; //正确命名
  28. int a*b; //编译错误,除了_和$,不能包含*等特殊符号
  29. int 1c; //编译错误,不能以数字开头
  30. int static; //编译错误,不能使用关键字
  31. int a = 6;
  32. System.out.println(A); //编译错误,严格区分大小写
  33. int 年龄; //正确,但不建议
  34. int age; //正确,建议“见名知意
  35. int score,myScore,myJavaScore; //正确,建议"驼峰命名法"
  36.  
  37. //声明整型变量a并赋值为25.67
  38. int a = 25.67; //编译错误,类型不匹配

案例2:数据类型转换

  1.           //1.int整型
  2. int a = 3000000000; //编译错误,30亿超出int范围
  3. System.out.println(5/2); //2 整数直接量默认为int,两个int运算得到的还是int型,小数位无条件舍弃
  4. System.out.println(2/5); //0
  5. System.out.println(5/2.0); //2.5 发生自动类型转换,int转换为double
  6.  
  7. int c = 2147483647; //int范围最大值
  8. c +=1;
  9. System.out.println(c); //-2147483648 发生溢出,溢出是需要避免的
  10.  
  11. //2.long长整型
  12. long a = 10000000000; //编译错误,100亿默认为int型,但超范围了
  13. long b = 10000000000L; //100亿L为长整型直接量
  14.  
  15. long c = 10000000*2*10L;
  16. System.out.println(c); //200亿
  17.  
  18. long d = 10000000*3*10L;
  19. System.out.println(d); //发生溢出,10亿*3默认是int型,但是30亿已超出int范围
  20.  
  21. long e = 100000000L*3*10;
  22. System.out.println(e); //300亿,在计算有可能发生溢出的时候建议第一个数加上L
  23.  
  24. long f = System.currentTimeMillis(); //从1970.1.1零时到现在的毫秒数是long型
  25.  
  26. //3.double浮点型
  27. double pi = 3.14; //3.14为浮点数直接量,默认为double型
  28. float pi = 3.14F;
  29. double a=6.0,b=4.9;
  30. System.out.println(a); //1.0999999999999996,舍入误差,精确计算不建议double

  

2.运算符

案例1:运算符的演示

  1. public class Test {
  2. public static void main(String[] args){
  3. int a = 2, b = 7, c=5;
  4. System.out.println(a++); //2
  5. System.out.println(a); //3
  6. System.out.println(++b); //8
  7. /*
  8. * 当变量参与运算时,++x,先自加再运算
  9. * 当变量参与运算时,x++,先运算在自加
  10. */
  11. c = c++;
  12. /*
  13. * 运算顺序:
  14. * 1.c取出自己内存的值5
  15. * 2.进行自加c变成6
  16. * 3.c++参与运算时的整体值是5
  17. * 4.然后将(c++)整体值赋值给c
  18. * 5.c的值又变成5
  19. */
  20. System.out.println(c); //5
  21. }
  22. }

  

案例2:字符串连接

  1. public class Test {
  2. public static void main(String[] args) {
  3. int a =1, b = 2;
  4. String o = "qwer";
  5. String P = a+b+o+a+b;
  6. /*
  7. *任何类型与字符串类型拼接,得到的依然是字符串类型
  8. *计算顺序:
  9. *1.先计算a+b,两个int相加得到int,结果为3
  10. *2.再+o为字符串,得到字符串3qwer
  11. *3再+a+b,得到的依然是字符串,结果为3qwer12
  12. */
  13. System.out.println(P); //3qwer12
  14. }
  15. }

  

案例3:三目运算输出三个数的最大值

  1. ublic class Test {
  2. public static void main(String[] args) {
  3. int a = 50, b = 90, c = 20;
  4. int max = (a>b?a:b)>c?(a>b?a:b):c;
  5. System.out.println(max);
  6. }
  7. }

案例4:逻辑运算符演示

  1. public class Test {
  2. public static void main(String[] args) {
  3. int a = 1;
  4. int b = 2;
  5. boolean c = a>1 && ++a>1;
  6. boolean d = a++>1 || b--<2;
  7. boolean e = a<1 || ++b==3;
  8. System.out.println(a);
  9. System.out.println(b);
  10. System.out.println(c);
  11. System.out.println(d);
  12. System.out.println(e);
  13. }
  14. }
  15.  
  16. /*
    运行结果:
  17. 2
  18. 2
  19. false
  20. false
  21. false
  22. */

3.分支结构

案例1:判断某一年的某一月是多少天

  1. import java.util.Scanner;
  2.  
  3. public class Test {
  4. public static void main(String[] args) {
  5. //用户输入数值
  6. Scanner scan = new Scanner(System.in);
  7. System.out.print("请输入查询的年份:");
  8. int year = scan.nextInt();
  9. System.out.print("请输入查询的月份:");
  10. int month = scan.nextInt();
  11. int days; //用于记录天数
  12. switch(month){
  13. case 2:
  14. if(year%400==0 || (year%4==0&&year%100!=0)){
  15. days = 29;
  16. break;
  17. }else{
  18. days = 28;
  19. break;
  20. }
  21. case 4:
  22. case 6:
  23. case 9:
  24. case 11:
  25. days = 30;
  26. break;
  27. default:
  28. days = 31;
  29. break;
  30. }
  31. System.out.println(year+"年的"+month+"月有"+days+"天");
  32. }
  33. }

4.循环结构

案例1:打印99乘法表

  1. public class Test {
  2. public static void main(String[] args) {
  3. for(int i=1;i<10;i++){
  4. for(int j=1;j<=i;j++){
  5. System.out.print(j+"*"+i+"="+j*i+"\t");
  6. }
  7. System.out.println();
  8. }
  9. }
  10. }

案例2:输入一个int整数,算出这个整数每个数字的和

比如输入321,则输出3+2+1=6

  1. import java.util.Arrays;
  2. /*
  3. 1. 3212/10=321...2
  4. 2. 321/10=21....1
  5. 3. 21/10=2....1
  6. 4. 2/10=0....0
  7. 规律:a/10最后结果为0的时候停止循环,即数字<10
  8. 所以当a每次除10之后的数字>0的时候循环
  9. */
  10. import java.util.Scanner;
  11.  
  12. public class Test {
  13. public static void main(String[] args) {
  14. System.out.print("输入一个整数:");
  15. Scanner scan = new Scanner(System.in);
  16. String input = scan.nextLine();
  17. int num = Integer.parseInt(input); //将输入的字符串转化为数字
  18. int sum = 0; //用于记录每个数的和
  19. char[] arr = input.toCharArray(); //将输入的字符串转换为字符数组
  20. while(true){
  21. sum += num%10;
  22. if(num<10){
  23. break;
  24. }
  25. num /= 10;
  26. }
  27. for(int i=0;i<arr.length-1;i++){
  28. System.out.print(arr[i]+"+");
  29. }
  30. System.out.print(arr[arr.length-1]);
  31. System.out.println("="+sum);
  32. }
  33. }

案例2:随机加法运算器

要求:系统随机出10道加法题(如3+38=),答对一题计10分,没计算一题给出“正确”或“错误”的提示,中途退出输入-1,最后输出总得分和答对的数量。

  1. import java.util.Scanner;
  2. import java.util.Random;
  3.  
  4. public class Test {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. Random ran = new Random();
  8. int score = 0; //记分
  9. for(int i=0;i<10;i++){
  10. int x = ran.nextInt(100);
  11. int y = ran.nextInt(100);
  12. System.out.println(x+"+"+y+"=?");
  13. int answer = scan.nextInt();
  14. if(answer == -1){
  15. System.out.println("游戏结束");
  16. break;
  17. }else if(answer == x+y){
  18. System.out.println("正确");
  19. score += 10;
  20. }else{
  21. System.out.println("错误");
  22. }
  23. }
  24. System.out.println("总得分是:"+score+"\t 一共答对了:"+score/10+"题");
  25.  
  26. }
  27. }

案例3:猜数字游戏

要求:系统随机生成一个1-1000以内的随机整数,要求用户猜测,猜大提示猜大了,猜小提示猜小了,猜对了提示猜对了并结束游戏,中途退出输入0。

  1. import java.util.Scanner;
  2.  
  3. public class Test {
  4. public static void main(String[] args) {
  5. Scanner scan = new Scanner(System.in);
  6. //生成随机1-1000以内整数
  7. int num = (int)(Math.random()*1000+1);
  8. System.out.println(num); //作弊,查看随机数是多少
  9. while(true){
  10. System.out.println("猜吧");
  11. int input = scan.nextInt();
  12. if(input == -1){
  13. System.out.println("游戏结束!");
  14. break;
  15. }else if(input >num){
  16. System.out.println("猜大了!");
  17. }else if(input <num){
  18. System.out.println("猜小了!");
  19. }else{
  20. System.out.println("猜对了,恭喜你!");
  21. break;
  22. }
  23. }
  24. }
  25. }

5.数组

案例1:随机生成一个包含10位整数的数组,输出最大值

  1. import java.util.Arrays;
  2.  
  3. public class Test {
  4. public static void main(String[] args) {
  5. int[] arr = new int[10];
  6. for(int i=0;i<10;i++){
  7. arr[i] = (int)(Math.random()*100);
  8. }
  9. System.out.println(Arrays.toString(arr)); //查看随机生成的数组
  10. //求数组最大值
  11. for(int i=0;i<arr.length-1;i++){
  12. int temp;
  13. if(arr[i]>arr[i+1]){
  14. temp= arr[i];
  15. arr[i] = arr[i+1];
  16. arr[i+1] = temp;
  17. }
  18. System.out.println("第"+(i+1)+"次排序"+Arrays.toString(arr));
  19. }
  20. System.out.println("最大元素是:"+arr[arr.length-1]);
  21. }
  22. }
  23.  
  24. /*
  25. 运行结果示例:
  26. [52, 73, 78, 33, 28, 63, 53, 35, 19, 32]
  27. 第1次排序[52, 73, 78, 33, 28, 63, 53, 35, 19, 32]
  28. 第2次排序[52, 73, 78, 33, 28, 63, 53, 35, 19, 32]
  29. 第3次排序[52, 73, 33, 78, 28, 63, 53, 35, 19, 32]
  30. 第4次排序[52, 73, 33, 28, 78, 63, 53, 35, 19, 32]
  31. 第5次排序[52, 73, 33, 28, 63, 78, 53, 35, 19, 32]
  32. 第6次排序[52, 73, 33, 28, 63, 53, 78, 35, 19, 32]
  33. 第7次排序[52, 73, 33, 28, 63, 53, 35, 78, 19, 32]
  34. 第8次排序[52, 73, 33, 28, 63, 53, 35, 19, 78, 32]
  35. 第9次排序[52, 73, 33, 28, 63, 53, 35, 19, 32, 78]
  36. 最大元素是:78
  37.  
  38. */

案例2:冒泡排序

分别输出数组从小到大排序和从大到小排序。

  1. import java.util.Arrays;
  2.  
  3. public class Test {
  4. public static void main(String[] args) {
  5. int[] arr = new int[10];
  6. for(int i=0;i<10;i++){
  7. arr[i] = (int)(Math.random()*100);
  8. }
  9. System.out.println("随机数组:"+Arrays.toString(arr));
  10. //冒泡排序
  11. System.out.println("=====冒泡排序开始=====");
  12. for(int i=0;i<arr.length-1;i++){ //轮数
  13. for(int j=0;j<arr.length-i-1;j++){ //次数
  14. if(arr[j]>arr[j+1]){ //比较两个相邻的元素,并将较大的元素与后一个元素交换
  15. int t;
  16. t = arr[j];
  17. arr[j] = arr[j+1];
  18. arr[j+1] = t;
  19. }
  20. }
  21. }
  22. System.out.println(Arrays.toString(arr)+"\n=====冒泡排序结束=====");
  23. System.out.println("=====从大到小排序开始=====");
  24. for(int i=0;i<arr.length-1;i++){
  25. for(int j=0;j<arr.length-i-1;j++){
  26. if(arr[j]<arr[j+1]){
  27. int t;
  28. t = arr[j];
  29. arr[j] = arr[j+1];
  30. arr[j+1] = t;
  31. }
  32. }
  33. }
  34. System.out.println(Arrays.toString(arr)+"\n=====从大到小排序结束=====");
  35. }
  36. }
  37.  
  38. /*
  39. 运行结果示例:
  40. 随机数组:[85, 25, 37, 32, 99, 83, 13, 81, 56, 99]
  41. =====冒泡排序开始=====
  42. [13, 25, 32, 37, 56, 81, 83, 85, 99, 99]
  43. =====冒泡排序结束=====
  44. =====从大到小排序开始=====
  45. [99, 99, 85, 83, 81, 56, 37, 32, 25, 13]
  46. =====从大到小排序结束=====
  47. */

案例3:使用Arrays.sort排序

要求:随机生成一个包含10位整数的数组,进行排序,然后将该数组进行扩容加1个该数组里的最大元素,再将该数组的5-8位元素复制给另一个数组。

  1. import java.util.Arrays;
  2.  
  3. public class Test {
  4. public static void main(String[] args) {
  5. int[] arr = new int[10];
  6. for(int i=0;i<10;i++){
  7. arr[i] = (int)(Math.random()*100);
  8. }
  9. System.out.println("随机数组:"+Arrays.toString(arr));
  10. Arrays.sort(arr); //排序
  11. System.out.println("排序后数组:"+Arrays.toString(arr));
  12. //扩容
  13. arr = Arrays.copyOf(arr, arr.length+1);
  14. arr[arr.length-1] = arr[arr.length-2]; //将最大元素添加到最后
  15. System.out.println("扩容后数组:"+Arrays.toString(arr));
  16. int[] brr = new int[4];
  17. System.arraycopy(arr, 5, brr, 0, 4);
  18. System.out.println("复制的新数组:"+Arrays.toString(brr));
  19. }
  20. }
  21.  
  22. /*
  23. 运行结果示例:
  24. 随机数组:[97, 74, 25, 9, 2, 24, 7, 16, 49, 79]
  25. 排序后数组:[2, 7, 9, 16, 24, 25, 49, 74, 79, 97]
  26. 扩容后数组:[2, 7, 9, 16, 24, 25, 49, 74, 79, 97, 97]
  27. 复制的新数组:[25, 49, 74, 79]
  28. */

6.方法

案例1:重写猜数字游戏

要求:生成随机数字、猜的数字正确与否都用方法来体现

  1. import java.util.Scanner;
  2.  
  3. public class Test {
  4. public static void main(String[] args) {
  5. int num = generateNum();
  6. check(num);
  7. }
  8. public static int generateNum(){ //生成随机数方法
  9. int num = (int)(Math.random()*1000);
  10. System.out.println(num);
  11. return num;
  12. }
  13. public static void check(int num){ //比较数字方法
  14. Scanner scan = new Scanner(System.in);
  15. while(true){
  16. System.out.println("猜吧!");
  17. int input = scan.nextInt();
  18. if(input ==-1){
  19. System.out.println("欢迎下次来玩,游戏结束!");
  20. break;
  21. }else if(input > num){
  22. System.out.println("猜大了");
  23. }else if(input <num){
  24. System.out.println("猜小了");
  25. }else{
  26. System.out.println("恭喜你,猜对了,游戏结束!");
  27. break;
  28. }
  29. }
  30. }
  31. }

  

Java 基础案例的更多相关文章

  1. Java基础-处理json字符串解析案例

    Java基础-处理json字符串解析案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 作为一名开发人员,想必大家或多或少都有接触到XML文件,XML全称为“extensible ...

  2. Java基础-SSM之Spring和Mybatis以及Spring MVC整合案例

    Java基础-SSM之Spring和Mybatis以及Spring MVC整合案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 能看到这篇文章的小伙伴,详细你已经有一定的Java ...

  3. Java基础-SSM之Spring和Mybatis整合案例

    Java基础-SSM之Spring和Mybatis整合案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   在之前我分享过mybatis和Spring的配置案例,想必大家对它们的 ...

  4. Java基础-零拷贝技术应用案例

    Java基础-零拷贝技术应用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 零拷贝技术在Hadoop生态圈中很多组件得到应用,典型的比如kafka组件,它就很成功的应用了零拷贝 ...

  5. java基础-多线程应用案例展示

    java基础-多线程应用案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.两只熊,100只蜜蜂,蜜蜂每次生产的蜂蜜量是1,罐子的容量是30,熊在罐子的蜂蜜量达到20的时候 ...

  6. Java基础-数据类型应用案例展示

    Java基础-数据类型应用案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.把long数据转换成字节数组,把字节数组数据转换成long. /* @author :yinz ...

  7. _00017 Kafka的体系结构介绍以及Kafka入门案例(0基础案例+Java API的使用)

    博文作者:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...

  8. java基础(1):java概述、jdk的安装、环境变量的配置、helloworld案例

    1. Java开发环境搭建 1.1 java概述 众所周知Java是一门编程语言,编程语言就是用来编写软件的.那么使用Java到底能用来编写什么软件呢?你所熟知的很多软件都可以用Java来编写,例如: ...

  9. 075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现

    075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现 本文知识点:综合案例-数组移位-主方法功能4的实现 说明:因为 ...

随机推荐

  1. <c和指针>学习笔记4之字符串

    1 字符串基础 NUL字节是字符串的终止符,但它本身并不是字符串的一部分,所以字符串的长度并不包括NUL字节. (1)字符串长度 size_t strlen(char const * string)注 ...

  2. phpstudy配置php7.1.11

    php7.1.11下载地址 http://windows.php.net/download/ 下载之后,解压. 重名的为php-7.1.11-nts 移动到phpStudy的php目录下 然后重启ph ...

  3. UVaLive 7637 Balanced String (构造)

    题意:给定一个括号的序列,原先的序列是碰到左括号加1,碰到右括号减1,然后把序列打乱,让你找出字典序最小的一个答案. 析:直接从第一个括号判断就好了,优先判断左括号,如果不行就加右括号. 代码如下: ...

  4. winform防止界面卡死的三种方法

    在编程过程中经常会遇到耗时操作,这个时候如果不采取一些必要的异步操作,就会导致界面的卡死,这里以winform为例子,介绍三种方法防止界面卡死,对这几个方法稍加修改同样适用于wpf,silverlig ...

  5. 洛谷P3190 [HNOI2007]神奇游乐园(插头dp)

    传送门 大概是算第一道自己做出来的插头dp? (虽然都是照着抄板子的) (虽然有个地方死活没调出来最后只能看题解才发现自己错在哪里的) 我就当你们都会插头dp了…… 因为必须得是一条路径,所以扫描线上 ...

  6. 2.关键字global,nonlocal

    count=0 def func(): print(count) count+=1 func() UnboundLocalError: local variable 'count' reference ...

  7. jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...)

    jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...) numberbox(数值输入框) HTML required:必填字段,默认为false:prompt:显示 ...

  8. SVN Trunk Tag Branch

    http://blog.csdn.net/vbirdbest/article/details/51122637

  9. [软件工程基础]Alpha 阶段事后分析

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 帮助选修物理实验的学生撰写实验报告,计算实验数据,验证计算结果,并提供一个讨论的平台. 全体成员认 ...

  10. Codeforces Round 56-B. Letters Rearranging(思维)

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...