zoukankan      html  css  js  c++  java
  • JAVA自学笔记(1)

    JAVA入门级知识储备(一)

    1.Scanner的欢乐接收

    import java.util.Scanner;
    
    public class first {
        public static void main(String[] args) {
            //扫描对象,用来扫描系统的输入
            Scanner input=new Scanner(System.in);//扫描仪的名称自定义,一般好记为input;
            /*各种类型如何输入
             * char a=input.next().charAt(0); //获得用户输入字符串中的第一个字符 
             * String a=input.next();//next() 不读入空格  nextLine()相反
             * int a=input.nextInt();
             * double a=input.nextDouble();
             * */
            System.out.println(a);
        }
    }

     2.while循环里遇到浮点型陷入懵圈

    import java.util.Scanner;
    
    public class fist {
        public static void main(String[] args) {
            double sum=1;
            double item=1;
            while(item!=0){
                sum+=item;
                item-=0.1;
                System.out.println(item);
            }
            System.out.println(sum);
        }
    }

    !!!循环里不要使用浮点型来比较值是否相等;

    使用Debug追踪 找到该程序的问题

    3.活学现用,编一个计算器玩玩吧

    package mycal;
    
    import java.util.Scanner;
    
    import javax.sql.rowset.CachedRowSet;
    
    public class counter {
        public static void main(String[] args) {
            Scanner input=new Scanner(System.in);
            String op="";
            String ch=null;
            double result=0,num1,num2;
            do{
                System.out.println("请输入两个操作数");
                num1=input.nextDouble();
                num2=input.nextDouble();
                op=input.next();
                switch(op)
                {
                case "+":
                    result = num1+num2;
                    break; 
                case "-":
                    result=num1-num2;
                    break;
                case "*":
                    result=num1*num2;
                    break;
                case "/":
                    if(num2==0)
                    {
                        System.out.println("输入不合理!");
                        result=0;
                    }
                    else
                    {
                    result=num1/num2;    
                    }
                    break;
                case "%":
                    result=num1%num2;
                    break;
                default:
                    System.out.println("输入的运算符不合理,运算失败!");
                    result=0;
                    break;
                }
                System.out.println(num1 +op+num2+"="+result);
                System.out.println("输入Y或者N");
                
                ch=input.next();
            }while("Y".equalsIgnoreCase(ch));
            System.out.println("运算结束!");
        }
    }

     4.走进数组的世界

    * 关于一维数组的声明,声明后要在堆内存中分配空间 。基本类型处理时,在栈内存中直接分配了空间(不需要手动分配) 。

      int[] nums=new int [5] //在堆内存中分配了5个int类型大小的空间 ,数组名即为新分配内存空间的首地址

    * 关于一维数组的初始化,声明并初始化数组是不需要指明数组的大小

    错误方式例如 int a[6]={0,1,2,3,4,5},int[6] a={0,1,2,3,4,5};

    正确方式为 int a[]={0,1,2,3,4,5}//中括号在前在后都行

    例题1.0 简单的数组题

    import java.util.Scanner;
    
    public class Main{
        public static void main(String[] args) {
            Scanner input=new Scanner(System.in);
            //输入n名同学的成绩,求出平均分,以及总和并打印;
            int n=input.nextInt();
            double [] students=new double[5];
            double sum=0,ave=0;
            for(int i=0;i<students.length;i++)
            {
                students[i]=input.nextDouble();
                sum+=students[i];
            }
            ave=sum/n;
            System.out.println(sum+" "+ave);
        }
    }

     数组题目 2.0(引入随机数的生成!)

    import java.util.Scanner;
    
    public class Main{
        public static void main(String[] args) {
            Scanner input=new Scanner(System.in);
            //随机生成n个数,打印最大值和最小值;
            final int N=10;//常量N
            int n=input.nextInt();
            int nums[]=new int[N];
            for (int i = 0; i < n; i++) {
                nums[i]=(int)(Math.random()*1000)%1001;//0-1000之间的数
                System.out.print(nums[i]+" ");
            }
            System.out.print("
    ");
            int max=Integer.MIN_VALUE;
            int min=Integer.MAX_VALUE;
            for (int i = 0; i < n; i++) {
                if(nums[i]>max)
                {
                    max=nums[i];
                }
                if(nums[i]<min)
                {
                    min=nums[i];
                }
            }
            System.out.print("输出最大值"+max+"
    "+"输出最小值"+min);
        }
    }

        三种随机数生成的方式

     第一种:new Random()

      通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。

     【PS:我们可以通过新建一个Random的对象来产生随机数,他可以产生随机整数、float、double、long型随机数】

     第二种:Math.random()

     通过Math.random()返回一个0到1之间的double值。

     【PS:这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的倍数来得到想要的效果,比如说乘以10,他就是个10以内的随机 数】

     第三种:currentTimeMillis() 

        通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。

     【PS:这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿它作为一个随机数,拿它对一些数取 模,就可以得到我们想要的一些范围内随机数】 

     

    数组3.0 排序大法!

    round1 冒泡排序法

    import java.util.Scanner;
    
    public class Main{
        public static void main(String[] args) {
            final int N=51;
            int [] nums=new int [N];
            int n,temp;
            Scanner input=new Scanner(System.in);
            n=input.nextInt();
            System.out.println("排序之前的数组!");
            for(int i=1;i<=n;i++)
            {
                nums[i]=(int)(Math.random()*1000)%1001;//0-1000随机数;
                System.out.print(nums[i]+" ");
            }
            System.out.println();
            for(int i=1;i<=n-1;i++)
            {
                for(int j=1;j<=n-i;j++)
                {
                    if(nums[j]<nums[j+1])//升序的话大于号
                    {
                        temp=nums[j];
                        nums[j]=nums[j+1];
                        nums[j+1]=temp;
                    }
                }
            }
            System.out.println("请打印出排序后的数组!");
            for(int i=1;i<=n;i++)
            {
                System.out.print(nums[i]+" ");
            }
        }
    }

     

    round2 选择排序法

    import java.util.Scanner;
    
    public class Main{
        public static void main(String[] args) {
            final int N=51;
            int [] nums=new int [N];
            int n,temp=0;
            Scanner input=new Scanner(System.in);
            n=input.nextInt();
            System.out.println("排序之前的数组!");
            for(int i=1;i<=n;i++)
            {
                nums[i]=(int)(Math.random()*1000)%1001;//0-1000;
                System.out.print(nums[i]+" ");
            }
            System.out.println();
            for(int i=1;i<=n-1;i++)
            {
                for(int j=i+1;j<=n;j++)
                {
                    if(nums[i]<nums[j])//升序则为大于号
                    {
                        temp=nums[j];
                        nums[j]=nums[i];
                        nums[i]=temp;
                    }
                }
            }
            System.out.println("请打印出排序后的数组!");
            for(int i=1;i<=n;i++)
            {
                System.out.print(nums[i]+" ");
            }
        }
    }

    round3 sort 大法

    import java.util.Arrays;
    
    public class Main{
        public static void main(String[] args) {
            final int N=10;
            int [] nums=new int [N];;
            System.out.println("排序之前的数组!");
            for(int i=0;i<N;i++)
            {
                nums[i]=(int)(Math.random()*1000)%1001;//0-1000;
                System.out.print(nums[i]+" ");
            }
            System.out.println();
            Arrays.sort(nums);
            System.out.println("请打印出排序后的数组!");
            for(int i=0;i<N;i++)
            {
                System.out.print(nums[i]+" ");
            }
        }
    }

     数组4.0 二分查找

    import java.util.Scanner;
    
    public class Main{
        public static void main(String[] args) {
            Scanner input=new Scanner(System.in);
            int searchnum;
            boolean isfind=false;
            int []nums={34,45,56,67,79};
            searchnum=input.nextInt();
            int left=0,right=nums.length-1,mid=0;
            while(left<=right)
            {
                mid=(left+right)/2;
                if(nums[mid]>searchnum) right=mid-1;
                else if(nums[mid]<searchnum) left=mid+1;
                else 
                {
                    System.out.print("找到了!下标为"+mid);
                    isfind=true;
                    break;
                }
            }
            if(isfind==false) System.out.print("很遗憾,没有找到!");
        }
    }

     

     

  • 相关阅读:
    如何在SpringMVC中使用REST风格的url
    c#实现的udt
    数据库查询服务化-缓存和分页
    c#常用数据库封装再次升级
    c#数据库连接池Hikari重构升级
    c# 常用数据库封装
    聊聊数据存储查询
    c#分析SQL语句
    c# 分析SQL语句中的表操作
    c#最近博文结尾
  • 原文地址:https://www.cnblogs.com/mzq-/p/12881108.html
Copyright © 2011-2022 走看看