zoukankan      html  css  js  c++  java
  • 我的java学习笔记(一)

    第一个java程序,还是熟悉的hello world

    public class FirstSample {   //类
    public static void main(String[] args)   //方法
    {
    System.out.println("Hello World!");    //输出语句“Hello World!”
        }
    }
     

    输出非常无趣,就是在控制台输出 Hello World!

     

    程序里值得注意的地方有就是:

    1.java程序是区分大写和小写的,即为大写和小写敏感。

    2.类是构建所有java应用程序和applet的构建块。Java应用程序中的所有内容都必须放置在类中。源码的文件名称必须与公共类的类名同样。

    3.依据java语言的规范,main方法必须声明为public。main中的方法必须是静态的。

     

    Java是一种强类型语言。

    在java中一共同拥有8种基本类型,4种整型、2种浮点型、1种用于表示Unicode编码的字符单元的字符类型char和一种用于表示真值得boolean类型。Java中没有不论什么无符号类型。

     

    类型

    存储需求

    int

    4个字节

    short

    2个字节

    long

    8个字节

    byte

    1个字节

    在java中有两种浮点类型。


    类型

    存储需求

    float

    4个字节

    double

    8个字节

    Java中char类型用UTF-16编码 一个代码单元。

    Boolean类型有两个值:false和true,用来推断逻辑条件。整型值和布尔值之间不能进行相互转换。

     

    在java中,利用keywordfinal指示常量。


    final double MONEY = 50;


    keywordfinal表示这个变量仅仅能被赋值一次,一旦被赋值之后,就不可以再更改了。

    假设一个常量在一个类中的多个方法中使用,通常将这些常量成为类常量。使用keywordstatic final设置一个类常量。


    Public static final double MONEY = 50;


    假设一个变量被声明为public,那么其它类的方法也能够使用这个常量。

     

    在java中整数被0除将会产生一个异常,而浮点数被0除将会得到一个无穷大或NaN结果。

     

    在java中的位运算符有: & 与 ,| 或 ,^ 异或,~非,<< 、>>左移和右移。  


    int a = (n & (1 << 3)) >> 3; //检查n第四位是不是1。


    >>>运算符将用0填补高位,>>运算符用符号位填补高位。没有<<<运算。

     

    Java字符串就是Unicode字符序列。

     

    String类的substring方法能够从一个较大的字符串提取出一个子串。


    String a = “hello”;
    String b = a.substring(0,4);//b为 hell b的长度为4-0=4


    Java语言同意使用+号连接两个字符串。当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串。


    int age = 13;
    String a = “abc” + age;  //a为abc13 


    使用equals方法检測两个字符串是否相等。


    a.equals(b); // 相等返回true ,不等返回false。


    假设想要检測两个字符串是否相等,而不区分大写和小写,能够使用equalsIgnoreCase方法。


    “Hello”.equalsIgnoreCase(“hello”);

    空串和值为null串的检測方法

    (str != null && str.length() != 0)

    首先要检查str不为null。假设在一个null值上调用方法,会出现错误。

     

    假设须要使用很多小段的字符串构建一个字符串,那么应该试一试StringBuilder类


    StringBulider builder = new StringBuilder();
    bulider.append(ch);//加入字符
    builder.append(str);//加入字符串
    String all = builder.toString();//把完整的字符串赋给all


    在java中的输入输出实例

     

    import java.util.*;
    public class InputTest {
    public static void main(String[] args)
    {
    Scanner in = new Scanner(System.in);//构造Scanner对象
    System.out.print("你叫什么名字?");
    String name = in.nextLine();
    //读入字符串
    System.out.print("你多大了?");
    int age = in.nextInt();
    //读入一个整数
    System.out.println("Hello," + name  + " 你如今已经" + age + "岁了");
        }
    }

    块即符合语句是指有一对花括号括起来的若干条件简单的java语句。块确定了变量的作用域。一个块能够嵌套在还有一个块中。不能再嵌套的两个块中声明同名的变量。

     

    switch语句中

    case标签能够是:

    1.类型为char、byte、short或int

    2.枚举

    3.从javaSE7開始,case标签还能够是字符串字面量。

     

    数组是一种数据结构,用来存储同一类型值得集合。

     

    数组的声明

    int[] a = new int[10];
    int a[] = new int[10];


    创建一个数字数组时,全部元素都初始化为0.boolean数组的元素会初始化为false。对象数组的元素则初始化为一个特殊值null,这表示这些元素未存放不论什么对象。

     

    假设想获得数组中的元素个数,能够使用array.length

     
    for(int i = 0;i < a.length;i++)
    System.out.println(a[i]);

    遍历数组的还有一种方法


    for(int element:a)
    System.out.println(elelment);


    要想对数值型数组进行排序,能够使用Arrays类中的sort方法


    Arrays.sort(a);


    Math.random方法将返回一个01之间的随机浮点数,就能够得到从0n-1之间的一个随机数。


     int r = (int)(Math.random()*n);

    几个小应用样例

    1.抽奖问题

    import java.util.*;
    public class test001 {
    	public static void main(String[] args)
    	{
    		Scanner in = new Scanner(System.in);
    		
    		System.out.println("你能抽多少个数字?");
    		int a = in.nextInt();
    		
    		System.out.println("最大的数字是什么?");
    		int n = in.nextInt();
    		
    		int[] num = new int[n];
    		for(int i = 0; i < num.length;i++)
    		{
    			num[i] = i + 1;
    		}
    		
    		int[] result = new int[a];
    		for(int i = 0 ; i <result.length;i++)
    		{
    			int rad = (int)(Math.random() * n);
    			result[i] = num[rad];
    			num[rad] = num[n-1];
    			n--;
    		}
    		
    		Arrays.sort(result);
    		System.out.println("抽奖结果为:");
    		for(int ele : result)
    		{
    			System.out.println(ele);
    		}
    	}
    }


    2.银行存钱的利息问题

     

    public class test002 {
    	public static void main(String[] args)
    	{
    		final double Begin = 10;
    		final int R = 6;
    		final int Y = 10;
    		
    		double[] Rate = new double[R];
    		for(int i = 0; i < Rate.length; i++)
    		{
    			Rate[i] = (Begin + i) / 100.0;
    		}
    		
    		double[][] bala = new double[Y][R];
    		for(int i = 0; i < bala[0].length; i++)
    		{
    			bala[0][i] = 10000;
    		}
    		
    		for(int i = 1;i < bala.length; i++)
    		{
    			for(int j = 0; j < bala[i].length; j++)
    			{
    				double oldbala = bala[i - 1][j];
    				
    				double up = oldbala * Rate[j];
    				
    				bala[i][j] = oldbala + up;
    				
    			}
    		}
    		
    		for(int i = 0; i < Rate.length;i++)
    		{
    			System.out.printf("%9.0f%%",100 * Rate[i]);
    		}
    				
    		System.out.println();
    		for(double[] r : bala)
    		{
    			for(double b : r)
    			{
    				System.out.printf("%10.2f",b);
    			}
    			System.out.println();
    		}
    	}
    }

    3.使用不规则数组打印杨辉三角


    public class test003 {
    	public static void main(String[] args)
    	{
    		final int m = 10;
    		
    		int[][] a = new int[m][];
    		for(int i = 0; i<m ; i++)
    		{
    			a[i] = new int[i+1];
    		}
    		
    		for(int i = 0; i < a.length;i++)
    		{
    			for(int j = 0; j <a[i].length; j++)
    			{
    				int temp = 1;
    				for(int k = 1 ; k <= j; k++)
    				{
    					temp = temp * (i - k + 1) / k;
    				}
    				a[i][j] = temp;
    			}
    		}
    		for(int[] r : a)
    		{
    			for(int ele : r)
    			{
    				System.out.printf("%4d",ele);
    			}
    		System.out.println();
    		}
    	}
    }


  • 相关阅读:
    设计模式之桥接模式(Java语言描述)
    我和CSDN的那些事
    设计模式之合成模式(Java语言描述)
    CAP原理和BASE思想
    finsh初步
    RTT第一个工程
    时钟芯片默认时间
    嵌入式MCU
    RTT工程管理
    反馈及运放基础了解
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4384579.html
Copyright © 2011-2022 走看看