1.变量及基本数据类型

案例1:变量声明及赋值

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

案例2:数据类型转换

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

  

2.运算符

案例1:运算符的演示

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

  

案例2:字符串连接

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

  

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

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

案例4:逻辑运算符演示

public class Test {
public static void main(String[] args) {
int a = 1;
int b = 2;
boolean c = a>1 && ++a>1;
boolean d = a++>1 || b--<2;
boolean e = a<1 || ++b==3;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
}
} /*
运行结果:
2
2
false
false
false
*/

3.分支结构

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

 import java.util.Scanner;

 public class Test {
public static void main(String[] args) {
//用户输入数值
Scanner scan = new Scanner(System.in);
System.out.print("请输入查询的年份:");
int year = scan.nextInt();
System.out.print("请输入查询的月份:");
int month = scan.nextInt();
int days; //用于记录天数
switch(month){
case 2:
if(year%400==0 || (year%4==0&&year%100!=0)){
days = 29;
break;
}else{
days = 28;
break;
}
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
System.out.println(year+"年的"+month+"月有"+days+"天");
}
}

4.循环结构

案例1:打印99乘法表

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

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

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

 import java.util.Arrays;
/*
1. 3212/10=321...2
2. 321/10=21....1
3. 21/10=2....1
4. 2/10=0....0
规律:a/10最后结果为0的时候停止循环,即数字<10
所以当a每次除10之后的数字>0的时候循环
*/
import java.util.Scanner; public class Test {
public static void main(String[] args) {
System.out.print("输入一个整数:");
Scanner scan = new Scanner(System.in);
String input = scan.nextLine();
int num = Integer.parseInt(input); //将输入的字符串转化为数字
int sum = 0; //用于记录每个数的和
char[] arr = input.toCharArray(); //将输入的字符串转换为字符数组
while(true){
sum += num%10;
if(num<10){
break;
}
num /= 10;
}
for(int i=0;i<arr.length-1;i++){
System.out.print(arr[i]+"+");
}
System.out.print(arr[arr.length-1]);
System.out.println("="+sum);
}
}

案例2:随机加法运算器

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

 import java.util.Scanner;
import java.util.Random; public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Random ran = new Random();
int score = 0; //记分
for(int i=0;i<10;i++){
int x = ran.nextInt(100);
int y = ran.nextInt(100);
System.out.println(x+"+"+y+"=?");
int answer = scan.nextInt();
if(answer == -1){
System.out.println("游戏结束");
break;
}else if(answer == x+y){
System.out.println("正确");
score += 10;
}else{
System.out.println("错误");
}
}
System.out.println("总得分是:"+score+"\t 一共答对了:"+score/10+"题"); }
}

案例3:猜数字游戏

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

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//生成随机1-1000以内整数
int num = (int)(Math.random()*1000+1);
System.out.println(num); //作弊,查看随机数是多少
while(true){
System.out.println("猜吧");
int input = scan.nextInt();
if(input == -1){
System.out.println("游戏结束!");
break;
}else if(input >num){
System.out.println("猜大了!");
}else if(input <num){
System.out.println("猜小了!");
}else{
System.out.println("猜对了,恭喜你!");
break;
}
}
}
}

5.数组

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

import java.util.Arrays;

public class Test {
public static void main(String[] args) {
int[] arr = new int[10];
for(int i=0;i<10;i++){
arr[i] = (int)(Math.random()*100);
}
System.out.println(Arrays.toString(arr)); //查看随机生成的数组
//求数组最大值
for(int i=0;i<arr.length-1;i++){
int temp;
if(arr[i]>arr[i+1]){
temp= arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
System.out.println("第"+(i+1)+"次排序"+Arrays.toString(arr));
}
System.out.println("最大元素是:"+arr[arr.length-1]);
}
} /*
运行结果示例:
[52, 73, 78, 33, 28, 63, 53, 35, 19, 32]
第1次排序[52, 73, 78, 33, 28, 63, 53, 35, 19, 32]
第2次排序[52, 73, 78, 33, 28, 63, 53, 35, 19, 32]
第3次排序[52, 73, 33, 78, 28, 63, 53, 35, 19, 32]
第4次排序[52, 73, 33, 28, 78, 63, 53, 35, 19, 32]
第5次排序[52, 73, 33, 28, 63, 78, 53, 35, 19, 32]
第6次排序[52, 73, 33, 28, 63, 53, 78, 35, 19, 32]
第7次排序[52, 73, 33, 28, 63, 53, 35, 78, 19, 32]
第8次排序[52, 73, 33, 28, 63, 53, 35, 19, 78, 32]
第9次排序[52, 73, 33, 28, 63, 53, 35, 19, 32, 78]
最大元素是:78 */

案例2:冒泡排序

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

import java.util.Arrays;

public class Test {
public static void main(String[] args) {
int[] arr = new int[10];
for(int i=0;i<10;i++){
arr[i] = (int)(Math.random()*100);
}
System.out.println("随机数组:"+Arrays.toString(arr));
//冒泡排序
System.out.println("=====冒泡排序开始=====");
for(int i=0;i<arr.length-1;i++){ //轮数
for(int j=0;j<arr.length-i-1;j++){ //次数
if(arr[j]>arr[j+1]){ //比较两个相邻的元素,并将较大的元素与后一个元素交换
int t;
t = arr[j];
arr[j] = arr[j+1];
arr[j+1] = t;
}
}
}
System.out.println(Arrays.toString(arr)+"\n=====冒泡排序结束=====");
System.out.println("=====从大到小排序开始=====");
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]<arr[j+1]){
int t;
t = arr[j];
arr[j] = arr[j+1];
arr[j+1] = t;
}
}
}
System.out.println(Arrays.toString(arr)+"\n=====从大到小排序结束=====");
}
} /*
运行结果示例:
随机数组:[85, 25, 37, 32, 99, 83, 13, 81, 56, 99]
=====冒泡排序开始=====
[13, 25, 32, 37, 56, 81, 83, 85, 99, 99]
=====冒泡排序结束=====
=====从大到小排序开始=====
[99, 99, 85, 83, 81, 56, 37, 32, 25, 13]
=====从大到小排序结束=====
*/

案例3:使用Arrays.sort排序

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

import java.util.Arrays;

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

6.方法

案例1:重写猜数字游戏

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

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
int num = generateNum();
check(num);
}
public static int generateNum(){ //生成随机数方法
int num = (int)(Math.random()*1000);
System.out.println(num);
return num;
}
public static void check(int num){ //比较数字方法
Scanner scan = new Scanner(System.in);
while(true){
System.out.println("猜吧!");
int input = scan.nextInt();
if(input ==-1){
System.out.println("欢迎下次来玩,游戏结束!");
break;
}else if(input > num){
System.out.println("猜大了");
}else if(input <num){
System.out.println("猜小了");
}else{
System.out.println("恭喜你,猜对了,游戏结束!");
break;
}
}
}
}

  

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. svn git 的区别(别再问我了)

    这篇主要是谈谈两者的区别,至于谁优谁劣看官自己思考吧! 把第一条理解到位思想到位了做起来才会有的放矢,其他几条都是用的时候才能体会到 1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点 ...

  2. ZOJ3526【缩点思想】

    一开始做的时候(TLE),A,C,G这三类作为边,然后点和点直接建边搜个环:then time BOOM! 可以发现只属于"A"类的之间都并在一起就好,同理"G" ...

  3. UIPI VS与Win7 共舞:用户界面特权隔离

    http://tech.it168.com/a2009/0924/737/000000737968.shtml [IT168 专稿]在上文中,我们介绍了操作系统服务的Session 0隔离,通过Ses ...

  4. 洛谷 P2327 [SCOI2005]扫雷

    P2327 [SCOI2005]扫雷 https://www.luogu.org/problem/show?pid=2327 题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二 ...

  5. 1366 - Incorrect string value:'\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' a 错误修改

    把name的字符集修改成 utf8 ,然后把表关了从新打开,就可以了 如果还不行,就从新创表,在创表的时候修改name的字符集 如果还不行,就修改my.ini 它在你的mysql安装路径里 [mysq ...

  6. 制作windows启动盘

    ·首先:不要使用“老毛桃,大白菜,u深度,电脑店,u大师”等工具,国产流氓软件了解下. ·工具:UltraISO (自行下载)环境:Windows ·Windows 7微软原版无修改的系统镜像下载地址 ...

  7. Jeasyui的datagrid前端分页要点

    Jeasyui的分页有两种方式: 1. 服务器端分页,是真正的分页,datagridview的pager会自动把pageSize和pageNum传到后台,后台根据根据pageSize和pageNum构 ...

  8. CreateJS介绍-了解CreateJS

    1.CreateJS 一款HTML5游戏开发引擎 CreateJS 是一套可以构建丰富交互体验的 HTML5 游戏的开源工具包,旨在降低 HTML5 项目的开发难度和成本,让开发者以熟悉的方式打造更具 ...

  9. JS高级学习历程-10

    [面向对象] 面向对象的三大特性:封装.继承.多态 封装:在“类”里边有关键字public.protected.private 对成员进行声明,这样每个成员的访问都会受到不同关键字的限制. 继承:在p ...

  10. moment.js插件的简单上手使用

    开发过程中看长篇幅的技术文档是件多么影响多发效率的事情丫,哼哼,人家明明只是想用个简单的功能而已丫,下面文档很好的解决了这个问题,yeah~~~ 一.monent.js时间插件 1.Moment.js ...