java学习(Java组成)

一.学习内容:

今天学习:Java发展历程,以及Java的组成,Java跨平台的原理,jdk和jre,random类,创建类的三部曲,编程的的一些思考

二. 具体内容:

java发展历程:

Java是由Java之父詹姆斯.高斯林创建的,java分为Javase javame以及Javaee三个版本,Javase主要使用来桌面应用开发,桌面应用的意思是指用户只要打开程序,程序的界面会让用户在很短的时间内找到自己需要的功能,帮用户更快的完成工作和更好的使用体验。javame主要用来嵌入式电子类的开发,现在很少用了,像以前的2.5G的冒泡社区,而Javaee,企业版开发,主要是网站,web开发。
现在Java以前的框架ssh到ssm spring boot springmvc springcloud 分布式,微服务,中间件。

java跨平台原理:

平台:是指操作系统(windows/Mac/Linux)。

PC端:是指电脑

移动端:是指手机,平板、智能设备(手表)

跨平台:java程序可以在其它操作系统上运行。

跨平台的原理如图所示:
在这里插入图片描述
JVM(虚拟机)本身是否可以跨平台?
答:JVM虚拟机本身不允许跨平台,允许跨平台的是java程序。

jdk和jre:

jdk:全称java depevolpement kit又名Java开发工具包,包含了代码的编译工具和运行工具。
jre:全称java runtime environment,是Java运行时的环境,包含了jvm虚拟机和Java的核心类库。其中:
类:Java程序的基本单位
类库:存放多个Java类文件的仓库

java程序开发包含了三个步骤
编写源代码、编译源代码、运行代码
在这里插入图片描述

jre和jdk和jvm的关系:
我们编译代码时要用到Jre中已经写好的Java代码。要用到JDK中的编译工具javac编译成一个字节码文件,要运行代码时要用到jdk中的运行工具,最终我们的字节码文件在jvm虚拟机运行。
在这里插入图片描述

创建类的三部曲:

这里直接用random举例:
1.导包:import java.util.Random;(这个我们导包是因为我们使用的这个包是别人封装好的,不是自己创建的。)
2.创建对象:Random r=new Random() (这里是我们new了一个random对象,然后把他赋值给r这个变量。)
3.获取:int number = r.nextInt(10); (10以内的随机数,取值范围是 [0,10})。这里有个疑问创建对象之后,可不可以引用多次这个对象r

三.题目:

倒三角形:

package day02;

public class piture2 {
    public static void main(String[] args){
        for(int i=1;i<=6;i++){  //控制外层循环,一共有多少行,但是受到内层循环的影响
            for(int j=1;j<=6-i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }

}

金字塔:

金字塔:
package day02;
/*
1.实现金字塔的图形,一样用for循环的嵌套,外层控制行数5行,内层for循环控制左边的空格数
2.在for循环输出每一个行的的*号,每一行的*号的规律是下一行比上一行多了2倍减1
 */

public class jinzita {
    public static void main(String args[]){
        for(int i=1;i<=6;i++){ //控制行数
            for(int j=1;j<=6-i;j++){ 
                System.out.print(" ");//控制左边的空格数
            }
            for(int k=1;k<=2*i-1;k++){
                System.out.print("*");//按照规律,输出每行的*数
            }
            System.out.println();
        }
    }

}

实心菱形:

package day02;
/*
1.要打印实心菱形可以两个金字塔组合二起来,分为上半部分,下半部分。
2.上半部分可以直接用金字塔的代码,
3.下半部分:用for循环倒着写控制他的条件控制语句
 */


public class lingxing {
    public static void main(String[] args) {
        //上半部分
        for (int i = 1; i <= 6; i++) {//控制行数
            for (int j = 1; j <= 6 - i; j++) {
                System.out.print(" "); //控制空格数
            }
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
        //下半部分
        for (int i = 1; i <= 5; i++) {
            for (int z = 1; z <= i; z++) {
                System.out.print(" ");
            }
            for (int a = 1; a <= 2 * (5 - i) + 1; a++) { //寻找边界值
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

空心菱形:

package day02;
/*
1.打印空心菱形,也就是在实心的菱形上添加一个if else 语句判断要不要添加这个*号
2.添加的位置是在每个*的循环的最后以及开始。
 */

public class konxinglingxin {
    public static void main(String[] args) {
        //上半部分
        for (int i = 1; i <= 6; i++) { //控制行数
            for (int j = 1; j <= 6 - i; j++) { //控制每行的空格数
                System.out.print(" ");
            }
            for (int k = 1; k <= 2 * i - 1; k++) {  //每行的个数2*i-1
                if(k==1||k==2*i-1){ //判断*是不是在每行的第一个或者最后一个,不是的话就用空格
                    System.out.print("*");
                }
                else{
                    System.out.print(" ");
                }
            }
            System.out.println();
            }
    //下半部分
        for (int i = 1; i <= 5; i++) {
        for (int z = 1; z <= i; z++) {
            System.out.print(" ");
        }
        for (int a = 1; a <= 2 * (5 - i) + 1; a++) {
            if(a==1||a==2 * (5 - i) + 1){
                System.out.print("*");
            }else{
                System.out.print(" ");
            }
        }
        System.out.println();
    }

}
}

猜数:

package day02;

import java.util.Random;
import java.util.Scanner;

/*
随机产生一个 1-100 之间的数字,然后让玩家不断猜测,如果猜大,提示过大,如果猜小,提示过小,如果猜中则程序停止
1.new一个random的对像以及scanner的对象
2。将输入的值和随机数比较选择不同的结果。
3.用while循环不断循环,直到猜对了为止
 */
public class caiquan {
//        public static void main(String[] args){
//            int num=(int)(Math.random()*100);
//            Scanner sr=new Scanner(System.in);
//            System.out.println("请输入一个数字");
//            int a=sr.nextInt();
//            while(a!=num){
//                if(a>num){
//                    System.out.println("您输入的数过高,请重新输入");
//                    a=sr.nextInt();
//                }
//                if(a<num) {
//                    System.out.println("您输入的数过小,请重新输入");
//                    a=sr.nextInt();
//                }
//            }
//            if(a==num){
//                System.out.println("您输入的数正确,真的太棒了!!");
//            }
//        }
//    }
    public static void main(String[] args) {
        Random ra = new Random();
        int r = ra.nextInt(100);
        System.out.println("请输入数:");
        Scanner scan = new Scanner(System.in);
        int s = scan.nextInt();
        while (r!=s) { //不断循环,直到猜对为止
            if (r > s) {
                System.out.println("恭喜你猜小了");
                s = scan.nextInt(); //重新获取猜值,继续循环

            } else if (r < s) {
                System.out.println("恭喜你猜大了");
                s = scan.nextInt();
            }

        }
        if(r==s) {
            System.out.println("猜对了");
        }
    }
}

求四位数的翻转数:

package day02;
/*
求一个四位数的翻转数:
1.先将四位数每一个数取值取模
2.重新运算,然后相加。

1.用while循环,循环内用不断取模,然后将输入的值/10;
 */

import java.util.Scanner;

public class fanzhuanshhu {
    public  static void main(String[] args){
        System.out.println("请输入整数");
        Scanner scan=new Scanner(System.in);
        int num=scan.nextInt();
        while(num!=0){ //当num被/10等于0跳出循环
          int  a=num%10;
          System.out.print(a);
          num=num/10;

        }

    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值