java基础语法

一部分来自java入门到精通,一部分来自java讲义前四章,主要包含数据类型、部分运算符、循环、数组及数组操作等基本语法知识

  先写个小Java过过瘾

1 public class test{
2     public static void main(String args[]){
3         System.out.println("Never Say Hello World");
4     } 
5 }

 需要注意的是:

  1、class的名称要与Java文件的命名要一致。

  2、main函数前边的修饰符,public static void

 

数据类型:

  1、super 用于引用父类,this 用于引用当前对象

  2、final 用于定义常量,局部唯一, static final 用于定义全局内唯一的常量

  3、关于位运算

 1 // 左移运算符:<<     相当于原数乘以2
 2 // 0011<<1 == 0110
 3 // 右移运算符:>>     相当于原数除以2,正负保持不变,即如果原数为负,前边填充1
 4 // 0011>>1 == 0001
 5 // 无符号右移运算符:>>>     右移一位,无论正负都填充0
 6 // 1111...1111>>>1 == 0111...1111
 7 public class test{
 8     public static void main(String args[]){
 9         int a = 3;
10         int b = 8;
11         int c = 8;
12         int d = -8;
13         a = a<<1;
14         b = b>>1;
15         c = c>>>1;
16         d = d>>>1;
17         System.out.println("a<<1 == " + a);
18         System.out.println("b>>1 == " + b);
19         System.out.println("c>>>1 == " + c);
20         System.out.println("d>>>1 == " + d);
21     } 
22 }
23 
24 // a<<1 == 6
25 // b>>1 == 4
26 // c>>>1 == 4
27 // d>>>1 == 2147483644

   4、三元运算符  

1 expression?statement_true:statement_false

循环与数组:

  数组拷贝:

  1、直接赋值,指向的是同一块内存空间

 1 public class test{
 2     public static void main(String args[]){
 3         int[] a = {1,2,3};
 4         int[] b = a;//直接赋值,相当于a和b指向的是同一个数组
 5         
 6         System.out.println("b[1] == " + b[1]);
 7         b[2] = 666;
 8         System.out.println("a[2] == " + a[2]);
 9     } 
10 }
11 
12 //b[1] == 2
13 //a[2] == 666

  2、System.arraycopy(fromArray, fromIndex, toArray, toIndex, length)

 1 public class main{
 2     public static void main(String args[]){
 3         int[] a = {1,2,3,4,5,6,7};
 4         int[] b = {11,12,13,14,15,16,17};
 5         System.arraycopy(a, 2, b, 3, 4);//将从a[2]开始的连续4个值copy到b[3]开始的4个值中
 6         
 7         for (int i = 0 ; i < b.length ; ++i)
 8             System.out.println("b[" + i + "] == " + b[i]);
 9     } 
10 }
11 
12 b[0] == 11
13 b[1] == 12
14 b[2] == 13
15 b[3] == 3
16 b[4] == 4
17 b[5] == 5
18 b[6] == 6

   不规则数组:Java真是神奇啊,不知道这个在内存中是怎么放的,难道是向哈希表一样存放?

 1 public class test{
 2     public static void main(String args[]){
 3         int[][] a = new int[3][];
 4         a[0] = new int[1];
 5         a[1] = new int[2];
 6         a[2] = new int[3];
 7         for (int i = 0 ; i < a.length ; ++i){
 8             for (int j = 0 ; j < a[i].length ; ++j)
 9                 System.out.print(a[i][j] + "\t");//这个“\t”啊。。eggache
10             System.out.println();
11         }
12     } 
13 }
14 
15 0
16 0       0
17 0       0       0

   

for-Each

 1 // for-Each
 2 public class test{
 3         public static void main(String args[]){
 4                 int sum = 0;
 5                 int[] nums = {2,4,6,8,10};
 6                 for (int i:nums){
 7                         System.out.print(i + "\t");
 8                         sum += i;
 9                 }
10                 System.out.println("\nSum of those nums is " + sum);
11         }
12 }
13 
14 2       4       6       8       10
15 Sum of those nums is 30
//for-Each 用于多维数组
1 for (int x:nums)
2     for (int y:x)

switch:

  仅支持byte、short、char、int四种基本类型和String、enum,这六种类型。

Arrays

  Java8中引入的类,包含一些可以直接对数组进行操作的方法,除了下面介绍的之外还包含一些parallel的并发执行的方法,如parallelSort等,暂不作介绍

//二分法查找数组范围内是否有key值出现,若数组中不包含key值,返回负数,要求搜索范围内升序排列
int  binarySearch(type[] a, type key);
int  binarySearch(type[] a, int fromIndex, int toIndex, type key);

//复制范围内的数组值,超出的弃掉,不足的赋为0或者空等
type[] copyOf(type[] original, int length);
type[] copyOfRange(type[] original, int from, int to);

//判断数组长度及值是否相同
boolean equals(type[] a, type[] a2);

//把范围内数组值赋值为val
void fill(type[] a, type val);
void fill(type[] a, int fromIndex, int toIndex, type val);

//排序,默认升序
void sort(type[] a);
void sort(type[] a;  int fromIndex, int toIndex);

//将数组转化为字符串,数组间元素用“,”或者空格隔开
String toString(type[] a);
 1 package test;
 2 import java.util.Arrays;
 3 
 4 public class test{
 5     public static void main(String a[]){
 6         int[] arr = {1,4,7,6,3,2};
 7         Arrays.sort(arr);
 8         for (int i:arr)
 9             System.out.print(i);
10         System.out.print("\n" + Arrays.toString(arr));
11     }
12 }
13 
14 // 123467
15 // [1, 2, 3, 4, 6, 7]

 

posted @ 2016-09-07 17:34  小痴_r  阅读(253)  评论(0编辑  收藏  举报