第一个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中,利用关键字final指示常量。
final double MONEY = 50;
关键字final表示这个变量只能被赋值一次,一旦被赋值之后,就不能够再更改了。
如果一个常量在一个类中的多个方法中使用,通常将这些常量成为类常量。使用关键字static 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方法将返回一个0到1之间的随机浮点数,就可以得到从0到n-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(); } } }