JAVA学习笔记(1~30)

JAVA学习笔记

java 编程思想

数据结构

JQUERY

javascript

数据结构

Java 编程思想

SQL 语句

0301

HelloWorld与数值类型

public class Text1{

         public static void main(String[] args){

        

                   byte b = 1;// 占用1个字节

                   boolean bool = true;//占用不确定

        

                   char c = 'a';//占用2个字节

                   char ch = 98;

                   short s = 10;//占用2个字节

        

                   int i = 1;//占用4个字节

                   float f = 2F;//占用4个字节

        

                   long l = 19L;//占用8个字节

                   double d = 10.83948D;//占用8个字节

                  

                   System.out.println(c);       // line 换行的意思

                   System.out.println(ch);

                   System.out.println("hello world!!!");

         }

}

 

*int转换成float/double时,可能丢失精度

*货币不建议使用float/double

*byte/int/short在计算时都会转自动转换成int,必须用int接受,需要强制类型转换

 s1 = (short)(s1+b)

s1+=1 不会出错

 

*constgoto 保留关键字,不能用也不能定义变量

*System.out.print("\\");两个杠才能输出一个“/

*System.out.print("\n\"如何输出一个双引号\"");两次转义才能输出一个双引号

*\r 回车  \n换行

 

0303

输入整数和输入字符串

Scanner input = new Scanner(System.in);

                   System.out.println("请输入一个整数");

                   int x1 = input.nextInt();

                   System.out.println(x1);

                  

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入一个字符串");

                   String s1= input.next();

                   System.out.println(s1);

 

 

*异或  a^b  两边不同为false,异或异或,异就对了

*&&  短路与

*||   短路或

 

 

&和&&的区别

&

逻辑运算:分别计算表达式两边的结果,再做&运算

位运算:表示按位与

 

&&

短路与运算,先计算左边表达式,如果结果是faalse,那么不用计算右边的表达式,直接返回false,如果左边的表达式结果是true,再计算右边的表达式,该方法效率最高

 

||同上

 

/**

 

通过键盘输入一个圆柱体的高和底面半径,求圆柱的体积,并显示4

 

*/

 

import java.util.Scanner;

public class Test7{

         public static void main(String[] args){

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入圆柱体的高:");

                   int h = input.nextInt();

                   System.out.println("请输入圆柱体的底面半径:");

                   int r = input.nextInt();

                   double result = 3.14*r*r*h;

                   System.out.println("圆柱体的体积是:"+result);

         }

}

 

 

/**

定义一个五位数,并求各个位上的和

 

*/

 

public class Test8{

         public static void main(String[] args){

                   int num = 12345;

                   int w = num/10000;

                   int q = num/1000%10;

                   int b = num/100%10;

                   int s = num/10%10;

                   int g = num%10;

                   System.out.println(w+q+b+s+g);

         }

}

 

 

/**

根据天数,计算周数和剩余的天数

 

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){5435

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入天数:");

                   int day = input.nextInt();

                   System.out.println("周数是:"+(day/7));

                   System.out.println("剩余的天数是:"+(day%7));

         }

}

 

 

*~按位取反

*^按位异或

*a<<b,二进制形式的a向左移动b位,最低位补0

*a>>b带符号右移,最高位补原来的符号位

*a>>>b无符号右移,最高位直接补0

 

以最快的速度计算8*4  

0000 1000    8

0010 0000    32

8<<2

 

 

*括号不会先运算

*不通过第三个变量交换两个数

(1)通过表达式计算a=a+b-(b=a)
(2)通过加减计算

a=a+b

b=a-b

a=a-b

(3)通过异或计算a!=   b

a=a^b

b=a^b

a=a^b

(4)通过乘除运算

 

/**

输入一个成绩判断及格和挂科

 

*/

 

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入一个成绩:");

                   int score = input.nextInt();

                   //String 表示一个字符串类型,不是基本数据类型

                   String s = score>=60?"及格":"挂科";

                   System.out.println(s);

         }

}

 

 

/**

输入一个字符,判断是大写还是小写

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入一个字符:");

                   char c = input.next().charAt(0);

                   if(c>=65 && c<=90){

                            System.out.println("大写");

                   }else{

                            System.out.println("小写");

                   }

         }

}

 

 

 

/**

判断平年和闰年

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入年份:");

                   int year = input.nextInt();

                   if((year%4==0 && year%100!=0)|| year%400==0){

                            System.out.println("是润年");

                   }else{

                            System.out.println("是平年");

                   }

         }

}

 

 

 

/**

      分数变等级

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入成绩:");

                   int score = input.nextInt();

                   if(score>=90){

                            System.out.println("A");

                   }else if(score<90 && score>=80){

                            System.out.println("B");

                   }else if(score<80 && score>=70){

                            System.out.println("C");

                   }else if(score<70 && score>=60){

                            System.out.println("D");

                   }else if(score<60){

                            System.out.println("不及格");

                   }       

         }

}

 

 

 

/**

      输入两个数,输出他们的大小关系是大于小于还是等于

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入第一个数:");

                   int num1 = input.nextInt();

                   System.out.println("请输入第二个数:");

                   int num2 = input.nextInt();

                  

                   if(num1>num2){

                            System.out.println("第一个数大于第二个数");

                   }else if(num1<num2){

                            System.out.println("第一个数小于第二个数");

                   }else{

                            System.out.println("这两个数相等");

                   }

         }

}

 

 

 

 

/**

     根据天气状况选择外出或在家,外出是逛街还是逛公园,在家是看电影还是玩游戏

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   Scanner input = new Scanner(System.in);

                   System.out.println("今年天气如何(1好,2霾)");

                   int weather = input.nextInt();

        

                   if(weather==1){

                            System.out.println("今天天气太好了,我是逛街还是逛公园呢?(1逛街,2逛公园)");

                            int flag = input.nextInt();

                            if(flag==1){

                                     System.out.println("陪女票逛街");

                            }else if(flag==2){

                                     System.out.println("去公园");

                            }

                   }else if(weather==2){

                            System.out.println("今天天气不好,在家看电影还是玩游戏?(1看电影,2玩游戏)");

                            int flag = input.nextInt();

                            if(flag==1){

                                     System.out.println("陪女票看电影");

                            }else if(flag==2){

                                     System.out.println("背着女票玩游戏");

                            }

                   }

         }

}

 

 

 

 

/**

     输入数字变成星期

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   Scanner input = new Scanner(System.in);

                   System.out.println("今天星期几?");

                   int day = input.nextInt();

                   //swith 括号后的表达式返回值必须是int/char/short/byte/String/枚举

                   switch(day){

                            case 1:

                                     System.out.println("星期一");

                                     break;

                            case 2:

                                     System.out.println("星期二");

                                     break;

                            case 3:

                                     System.out.println("星期三");

                                     break;

                            case 4:

                                     System.out.println("星期四");

                                     break;

                            case 5:

                                     System.out.println("星期五");

                                     break;

                            case 6:

                                     System.out.println("星期六");

                                     break;

                            case 7:

                                     System.out.println("星期日");

                                     break;

                            default:    //可以省略

                                     System.out.println("请回火星");

                                     break;

                   }

        

         }

}

 

 

*case 中声明的变量作用域为整个switch,如果给case加了括号,就只能在声明的case 中使用

*在实现分支判断时,一个好的习惯是把匹配成功率高的放在前面,这样可以提高性能

*在表达式中判断时,尽量用确定的值去跟不确定的值判断if(10==x)

*java7之前,编译时switch把字符串转换成字符串的哈希值(整数)作为switch语句表达式的值

 

 

 

/**

     计算1~100之间所有整数之和

*/

 

public class Test9{

         public static void main(String[] args){

                   int num = 0;

                   int i = 1;

                   while(i<=100){

                            num+=i;

                            i++;

                   }

                   System.out.println(num);

         }

}

 

 

/**

     计算10的阶乘

*/

 

public class Test9{

         public static void main(String[] args){

                   int num = 1;

                   int i = 1;

                   while(i<=10){

                            num*=i;

                            i++;

                   }

                   System.out.println(num);

         }

}

 

 

 

/**

     打印100以内所有的奇数、偶数、3的倍数

*/

 

public class Test9{

         public static void main(String[] args){

                   int i = 1;

                   while(i<100){

                            if(i%2==0){

                                     System.out.println("偶数:"+i);

                            }else {

                                     System.out.println("奇数:"+i);

                            }

                            if(i%3==0){

                                     System.out.println("3的倍数:"+i);

                            }

                            i++;

                   }

         }

}

 

 

 

 

 

 

/**

     逆序输出10~0

*/

 

public class Test9{

         public static void main(String[] args){

                   int i = 10;

                   do{

                            System.out.println(i);

                            i--;      //先循环,再判断,至少执行一次

                   }while(i>=0);//循环条件,不满足就出来

         }

}

 

 

 

/**

     计算1+2+3+……+10

*/

 

public class Test9{

         public static void main(String[] args){

                   int num = 0;   //记录总和

                   int i = 1;

                   do{

                            int j = 1;

                            int jc = 1;

                           

                            while(j<=i){

                            jc*=j;

                            j++;

                       }

                            num+=jc;

                            i++;      //先循环,再判断,至少执行一次

                   }while(i<=10);//循环条件,不满足就出来

                  

                   System.out.println(num);

         }

}

 

 

 

 

 

 

/**

    输出斐波那契额数列

*/

 

public class Test9{

         public static void main(String[] args){

                   int n1 = 1;

                   int n2 = 1;

                   int next = 0;

                   System.out.print(n1+" "+n2+" ");

                   for(int i = 0;i<8;i++){

                            next = n1 + n2;

                            System.out.print(next+" ");

                            n1=n2;

                            n2=next;

                   }

         }

}

 

 

 

 

/**

    打印**三角形

*/

 

public class Test9{

         public static void main(String[] args){

         for(int i = 1;i<=5;i++){

                            for(int j = 1;j<=i;j++){

                                     System.out.print("*");

                            }

                   System.out.println();       

         }

         }

}

 

 

 

/**

    打印乘法表

*/

 

public class Test9{

         public static void main(String[] args){

         for(int i = 1;i<=9;i++){

                            for(int j = 1;j<=i;j++){

                                     System.out.print(j+"*"+i+"="+(i*j)+"\t");

                            }

                   System.out.println();       

         }

         }

}

 

 

 

 

 

/**

    打印倒三角

*/

 

public class Test9{

         public static void main(String[] args){

         for(int i = 1;i<=5;i++){

                            for(int j = 5;j>0;j--){

                                     if(j<=i){

                                               System.out.print("*");

                                     }else {

                                               System.out.print(" ");

                                     }

                            }

                            System.out.println();

                   }

         }

}

 

 

 

 

 

 

 

 

 

 

 

/**

    打印三角塔

*/

 

public class Test9{

         public static void main(String[] args){

         for(int i = 1;i<=5;i++){

                            for(int j=i;j<=5;j++){

                                     System.out.print(" ");

                            }

                            for(int j=1;j<=i*2-1;j++)

                                     System.out.print("*");

                            System.out.println();

                   }

                           

         }

}

 

 

 

 

 

 

/**

    方法

*/

 

public class Test9{

         public static void main(String[] args){

                   getMenu();//调用一个方法

                   getMenu();//调用一个方法

                   getMenu();//调用一个方法

                   getMenu();//调用一个方法

                   getMenu();//调用一个方法

         }

         //public访问权限修饰符(公共的)

         //静态修饰符,描述的方法可以直接调用

         //void 返回值

         //方法名(驼峰命名法,首字母小写,起名要见名知意)

         //定义一个方法

         public static void getMenu(){

                   System.out.println("-----菜单-----");

                   System.out.println("1、宫保鸡丁 22");

                   System.out.println("2、韭菜鸡蛋 20");

                   System.out.println("3、红烧狮子头 26");

                   System.out.println("4、滋补牛尾汤 38");

                   System.out.println("5、美颜酱猪蹄 38");

         }

        

        

}

 

 

 

 

/**

    打印任意行的星星

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入要打印的行数:");

                   int num = input.nextInt();

                   //实参:在调用方法时传入的参数,称为实参

                   printStar(num);

         }

 

         /**

                   带参数的方法

                   形参:在方法定义时的参数

         */

         public static void printStar(int line){   //line=num

                   for(int i = 1;i<=line;i++){

                            for(int j = 1;j<=i;j++){

                                     System.out.print("*");

                            }

                                     System.out.println();       

 

                   }

         }

}

 

 

 

 

 

 

 

/**

    输入任意年份,用方法判断平年和闰年

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入年份:");

                   int year = input.nextInt();

                  

                   //杯子接 = 榨汁机(苹果,梨,香蕉)

                   boolean bool = isRunNian(year);

                   if(bool){

                            System.out.println("闰年");

                   }else{

                            System.out.println("平年");

                   }

         }

 

        

         public static boolean isRunNian(int year){   //line=num

                   if((year%4==0 && year%100!=0 )||  year%400==0){

                            return true;

                   }else{

                            return false;

                   }

         }

}

 

 

 

*方法的重载:overloading method 在类中创建多个方法,他们具有相同的名字,但具有不同定义,返回值不能作为重载的条件

 

 

/**

    方法的重载

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   float result = add(10,20); //float 就调用第二个方法   int  就调用第一个方法

                   System.out.println(result);

         }

 

        

         public static int add(int a,int b){ 

                   return a+b;

         }

         public static float add(float a,float b){ 

                   return a+b;

         }

}

 

 

 

/**

    数组的定义及属性

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   //第一种

                   int [] num = new  int[5];

                   for(int i = 5; i<num.length;i++){

                            num[i] = i + 1;

                   }

                  

                   //第二种

                   int [] nums2;

                   nums2 = new int[5];

                  

                   //第三种

                   int [] nums3 = new int[]{1,2,3,4,5};

                  

                   //第四种

                   int [] nums4 = {1,2,3,4,5,6,7,8,9,5,3,5,6,6,3};

                   System.out.println("数组的长度是:");

                   System.out.println(nums4.length);  //所有的数组都有一个属性,nums.length,“.”可以读成“的”

         }

 

        

 

}

 

 

 

/**

    数组的遍历

*/

import java.util.Scanner;

public class Test9{

         public static void main(String[] args){

                   //第一种

                  

         int[] scores = {59,75,83,93,100};

                  

                   int len = scores.length;

                   System.out.println("数组的长度"+len);

                   for(int i = 0 ; i<len;i++){

                            int score = scores [i];

                            //System.out.println(score);   

                   }

                   print2(59,75,63,96);

                   //System.out.println(scores); //对象字符串的表达方式

                  

                   //第二种  forearch  缺点不能用下标   jdk1.5之后新增的特性

                   for(int x:scores){

                            //System.out.println(x);

                   }

         }

                  

         public static void print1(int[] x){

                   int len = x.length;

                   for(int i =0;i<len;i++){

                            //System.out.println(x[i]);       

                   }

                  

         }

                   //第三种    可变参数

         public static void print2(int k,int...x){//可变参数只能是最后一个,59给了k

                            int len = x.length;

                   for(int i =0;i<len;i++){

                            System.out.println(x[i]); 

                   }

                  

                  

         }

}

*空指针异常

*数组下标越界问题

*内存结构,数组是存在堆里的,是引用类型,只存了地址,地址引用了堆里的空间,真正存在堆中,但基本数据类型直接存放在栈中

 

 

27 190922

 

/**

    猜数游戏

*/

 

import java.util.Scanner; //接受键盘输入

public class Text1{

         public static void main(String[] args){

        

                   int[] nums = {30,17,6,2,22,27};

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入你要猜的数:(50以内)");

                   int userNum = input.nextInt();

                  

                   boolean flag = false;

                   for(int x:nums){

                            if(userNum==x){

                                     flag = true;

                                     break;

                            }

                                    

                   }

                   if(flag){

                            System.out.println("恭喜你,猜对了");

                   }else{

                            System.out.println("没猜对,加油!");

                   }

                  

        

         }

}

 

 

 

/**

    猜数游戏(生成随机数)

*/

 

import java.util.Random; //生成伪随机数

import java.util.Scanner; //接受键盘输入

public class Text1{

         public static void main(String[] args){

        

                  

                   int[] nums = new int[5];

                   int len = nums.length;

                  

                   Random r = new Random();//创建一个可生成随机数的工具     

                   for(int i=0;i<len;i++){

                            nums[i] = r.nextInt(50);

                   }

                                    

                   Scanner input = new Scanner(System.in);

                   System.out.println("请输入你要猜的数:(50以内)");

                   int userNum = input.nextInt();

                  

                   boolean flag = false;

                   for(int x:nums){

                            if(userNum==x){

                                     flag = true;

                                     break;

                            }

                                    

                   }

                   if(flag){

                            System.out.println("恭喜你,猜对了");

                   }else{

                            System.out.println("没猜对,加油!");

                   }

                  

        

         }

}

 

 

 

 

/**

    打印正三角形     

            A

      BBB

     CCCCC

    DDDDDDD

   EEEEEEEEE

  FFFFFFFFFFF

GGGGGGGGGGGGG

*/

 

 

import java.util.Scanner; //接受键盘输入

public class Text1{

         public static void main(String[] args){

        

                   char[] cs = {'A','B','C','D','E','F','G'};

                   int len = cs.length;

                   for(int i=1;i<=len;i++){

                           

                            for(int j=i;j<len;j++){

                                     System.out.print(" ");

                            }

                            for(int j=1;j<=i*2-1;j++){

                                     System.out.print(cs[i-1]);

                            }

                            System.out.println();

                   }

                  

        

        

         }       

}

 

 

28

/**

                   java中没有真正的多维数组,多维数组的表示方式是数组中的元素还是数组

                   一共有3个班级,每个班有三名学生参赛,记录每个学员的成绩,并算出每个班的平均分

*/

 

 

import java.util.Scanner; //接受键盘输入

public class Text1{

         public static void main(String[] args){

                   int[][] scores = {{78,98,88},{87,96,85},{67,78,89}};

                   int classLen = scores.length;

                   for(int i=0;i<classLen;i++){

                            int sum = 0;

                            int count = scores[i].length;

                            for(int j=0;j<count;j++){

                                     sum+=scores[i][j];

                            }

                            int avg = sum/count;

                            System.out.println(""+(i+1)+"班的平均分是:"+avg);

                   }

         }                

}

 

 

 

/**

                   求最大最小值

*/

 

 

import java.util.Scanner; //接受键盘输入

public class Text1{

         public static void main(String[] args){

                   int[] num = {12,3,54,67,88,34};

                   int max = max(num);

                   System.out.println("数列中的最大值是:"+ max);

                   int min = min(num);

                   System.out.println("数列中的最小值是:"+ min);

         }       

                  

                  

         //求数列中的最大值

         public static int max(int[] num){

                   int max = num[0];

                   int len = num.length;

                   for(int i=1;i<len;i++){

                            if(num[i]>max){

                                     num[i]= num[i]+max;

                                     max =  num[i]-max;

                                     num[i] = num[i]-max;

                            }

                   }

                            return max;

         }

                  

         //求数列中的最小值

         public static int min(int[] num){

                            int min = num[0];

                   int len = num.length;

                   for(int i=1;i<len;i++){

                            if(num[i]<min){

                                     num[i]= num[i]+min;

                                     min =  num[i]-min;

                                     num[i] = num[i]-min;

                            }

                   }

                            return min;

                  

         }

                           

                  

                  

                           

}

29

/**

                   冒泡排序法

                   相同元素前后顺序没有改变,所以冒泡排序法是一种稳定排序算法

*/

 

 

import java.util.Scanner; //接受键盘输入

public class Text1{

         public static void main(String[] args){

                   int[] num = {12,3,54,54,88,34};

                  

                   //外循环控制轮数

                  

                   for(int i=0;i<num.length-1;i++){//比较轮数等于数列长度减一

                  

                            for(int j=0;j<num.length-1-i;j++){

                                     if(num[j]>num[j+1]){

                                               num[j] = num[j]+num[j+1];  //先加一次,再减两次,中间是j+1

                                               num[j+1] = num[j]-num[j+1];

                                               num[j] = num[j]-num[j+1];

                                     }

                                    

                            }

                           

                           

                   }

                  

                   //

                   for(int n : num){

                            System.out.println(n);

                   }

         }       

        

                           

}

 

 

30

/**

                   选择排序法

                   每一次从待排序的数组中选出最小或最大的一个元素

                   顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完

                   此方法“不稳定”,两个相同的数可能会调换位置

                  

*/

 

 

import java.util.Scanner; //接受键盘输入

public class Text1{

         public static void main(String[] args){

                   int[] nums = {12,3,54,54,88,34};

                  

                   //外循环控制轮数

                   int minIndex = 0;//用于记录最小值的下标

                   for(int i = 0; i<nums.length-1;i++){

                            minIndex = i;//每轮设定一个最小值下标

                            for(int j=i+1;j<nums.length;j++)

                            {

                                     if(nums[minIndex]>nums[j]){

                                               minIndex = j;

                                              

                                     }

                                    

                                    

                            }

                            //判断需要交换的数的下标是否为自己

                            if(minIndex!=i){

                                     nums[minIndex] = nums[minIndex]+nums[i];

                                     nums[i] = nums[minIndex]-nums[i];

                                     nums[minIndex] = nums[minIndex]-nums[i];

                                    

                            }

                           

                   }

                  

                   for(int n:nums)

                            System.out.println(n);

         }       

        

                           

}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值