JAVA开发环境搭建及java基础知识详解

一、Java开发环境搭建

1.下载软件

首先我们需要下载java开发工具包JDK,下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/index.html


点击之后:

下载后JDK的安装根据提示进行,还有安装JDK的时候也会安装JRE,一并安装就可以了。

2.配置环境变量(基于win10系统,其他系统也差不多)

首先我们右键点击此电脑,选择属性,之后选择高级系统设置,出现


出现:


在系统环境变量中配置

  • 变量名:JAVA_HOME
  • 变量值:C:\Program Files (x86)\Java\jdk1.8.0_91        // 要根据自己的实际路径配置
  • 变量名:CLASSPATH
  • 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;         //记得前面有个"."
  • 变量名:Path

  • 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;


注:1.Windows10中,因为系统的限制,path变量只可以使用JDK的绝对路径。%JAVA_HOME%会无法识别,导致配置失败

        2.如果使用1.5以上版本的jdk,不用设置

如图所示:


3.看看我们是不是安装成功

1."开始"->"运行",键入"cmd";

2.键入java -version查看java版本,然后键入javac命令,出现如图所示表示安装成功:


4.jvm/jdk/jre三者之间的关系


二、Java的注释

1.单行注释://

2.多行注释:/*想要注释的内容*/

3.文档注释:/**想要注释的内容*/

三、Java中的标识符

    Java中的包、类、方法、参数和变量的名字可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但是标识符不能是数字开头,也不能是Java中的保留关键字,理论上:名字可以起任何名字,但是我们还是要做到见名知意,并采用驼峰命名法。

四、Java中的关键字

对于上面的关键字,我们应该注意:

(1)虽然goto、const在java中并没有任何意义,却也是保留字,它们与其他的关键字一样,在程序中不能用来作为自定义的标识符

(2)true、false、null虽然不是关键字,但是却作为一个单独标识类型,也不能直接使用。

(3)assert和enum关键字java新增的内容,assert是在jdk1.4中增加进来的,而enum是在jdk1.5后增加进来的。

五、数据类型划分


六、基本数据类型

序    号数据类型大小/字节可表示的数据范围
1long8-9223372036854775808~9223372036854775807
2int4-2147483648~2147483647
3short2-32768~32768
4byte1-128~127
5char20~255
6float4-3.4E38(-3.4*10^38)~3.4E38(3.4*10^38)
7double8-1.7E308(-1.7*10^308)~1.7E308(1.7*10^308)
8boolean-true或false

七、数据类型的转换

a.自动类型转换

转换从低级到高级

低-----------------------------------------------高
byte,short,char->int->long->float->double

数据类型转换必须满足遵守下面几个规则

1)不能对boolean类型进行类型转换

2)不能把对象类型转换成不相关的对象

3)在把容量大的类型转换成容器小的类型时必须使用强制类型转换。

4)转换过程中可能出现溢出或损失精度,这种情况发生在大数据类型强制转换成小数据类型

int i =128;   
byte b = (byte)i;

5)浮点数到整型的转换会省略小数部分,注意这里不是四舍五入,而是直接截去

(int)23.7 == 23;        
(int)-45.89f == -45

b.强制类型转换

1)条件是转换的数据类型必须是兼容的

2)格式:(DataType)value type是要强制类型转换后的数据类型实例:

public class QiangZhiZhuanHuan{
    public static void main(String[] args){
        int i1 = 123;
        byte b = (byte)i1;//强制类型转换为byte
        System.out.println("int强制类型转换为byte后的值等于"+b);
    }
}

运行结果:

int强制类型转换为byte后的值等于123

注意:隐含的强制类型转换

1.整数的默认类型为int

2.浮点型不存在这种情况,因为在定义float类型时必须在数字后面加上F或f.。

八、运算符


注意:

1.算数元素++i(--i)和i++(i--)的区别,++为前缀表示先运算再进行赋值,++为后缀表示先赋值再运算,实例:

public class selfAddMinus{
    public static void main(String[] args){
        int a = 5;//定义一个变量;
        int b = 5;
        int x = 2*++a;
        int y = 2*b++;
        System.out.println("自增运算符前缀运算后a="+a+",x="+x);
        System.out.println("自增运算符后缀运算后b="+b+",y="+y);
    }
} 

结果:

自增运算符前缀运算后a=6,x=12
自增运算符后缀运算后b=6,x=10

2.逻辑运算符中,&和短路运算符(&&)的区别,短路运算符在使用逻辑与的时候,两个操作都为true的时候,结果才为true,但是当得到第一个操作为false时,其结果必然是false,不会继续判断第二个操作。实例:

public class LuoJi{
    public static void main(String[] args){
        int a = 5;//定义一个变量;
        boolean b = (a<4)&&(a++<10);
        System.out.println("使用短路逻辑运算符的结果为"+b);
        System.out.println("a的结果为"+a);
    }
}

结果为:

使用短路逻辑运算符的结果为false
a的结果为5

3.三目运算符(?:),“?”前面的条件为true,执行“:”前面的表达式,条件为false,执行“:”后面的表达式

使用格式:变量=判断条件?表达式1:表达式2

4.instanceof运算符,用于操作对象实例,检查该对象是否是一个特定类型

格式:

( Object reference variable ) instanceof  (class/interface type)

如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真

实例:

String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真

5.java运算符优先级

单目:单目运算符+ –(负数) ++ -- 等 
乘除:算数单目运算符* / % + - 
为:位移单目运算符<< >> 
关系:关系单目运算符> < >= <= == != 
逻辑:逻辑单目运算符&& || & | ^ 
三目:三目单目运算符A > B ? X : Y 
后:无意义,仅仅为了凑字数 

赋值:赋值=

九、java选择结构

1.if结构,实例:

public class Test {
 
   public static void main(String args[]){
      int x = 10;
 
      if( x < 20 ){
         System.out.print("这是 if 语句");
      }
   }
}

运行结果:

这是 if 语句

2.if……else结构,实例:

public class Test {
 
   public static void main(String args[]){
      int x = 30;
 
      if( x < 20 ){
         System.out.print("这是 if 语句");
      }else{
         System.out.print("这是 else 语句");
      }
   }
}

运行结果

这是 else 语句

注:if……else可以进行嵌套也可以有,if……else if……else结构,实例:

public class Test {
   public static void main(String args[]){
      int x = 30;
 
      if( x == 10 ){
         System.out.print("Value of X is 10");
      }else if( x == 20 ){
         System.out.print("Value of X is 20");
      }else if( x == 30 ){
         System.out.print("Value of X is 30");
      }else{
         System.out.print("这是 else 语句");
      }
   }
}

运行结果:

Value of X is 30

3.switch

判断一个变量与一系列值中某个值是否相同,每一个值成为一个分支,实例:

public class Test {
   public static void main(String args[]){
      //char grade = args[0].charAt(0);
      char grade = 'C';
 
      switch(grade)
      {
         case 'A' :
            System.out.println("优秀"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("良好");
            break;
         case 'D' :
            System.out.println("及格");
         case 'F' :
            System.out.println("你需要再努力努力");
            break;
         default :
            System.out.println("未知等级");
      }
      System.out.println("你的等级是 " + grade);
   }
}

运行结果:

良好
你的等级是 C

十、Java循环结构

1.while循环,实例:

public class Test {
   public static void main(String args[]) {
      int x = 10;
      while( x < 20 ) {
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }
   }
}

2.do while循环,实例:

public class Test {
   public static void main(String args[]){
      int x = 10;
 
      do{
         //循环体
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }while( x < 20 );
   }
}
注:while循环和do while循环的区别,do while首先要执行一次循环体

3.for循环,实例:

public class Test {
   public static void main(String args[]) {
 
      for(int x = 10; x < 20; x = x+1) {
         System.out.print("value of x : " + x );
         System.out.print("\n");
      }
   }
}

这三种的循环结果都是

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

4.Java增强for循环

Java5引入的一种主要用于数据的增强for循环,实例:

public class Test {
   public static void main(String args[]){
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ){
         System.out.print( x );
         System.out.print(",");
      }
      System.out.print("\n");
      String [] names ={"James", "Larry", "Tom", "Lacy"};
      for( String name : names ) {
         System.out.print( name );
         System.out.print(",");
      }
   }
}

程序运行结果:

10,20,30,40,50,
James,Larry,Tom,Lacy,

5.循环的中断

break关键字和continue关键字:

1.break,条件满足直接跳出循环,实例:

public class Test {
   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ) {
         // x 等于 30 时跳出循环
         if( x == 30 ) {
            break;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

程序结果:

10
20

2.continue,条件满足跳出本次循环,实例:

public class Test {
   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ) {
         if( x == 30 ) {
        continue;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

程序结果:

10
20
40
50

十一、Java数组(一组相关数据的集合)

a.一维数组:

1.数组的静态初始化:

格式:数据类型[] 数组名 ={初值0,初值1,……,初值n}

2.数组的动态初始化:

格式:数据类型[] 数组名 = new 数据类型[长度],数组名[i]=值,i的范围:0~长度-1


b.二维数组:(相当于一张表)

格式:数据类型 数组名[] = new 数据类型[行的个数][列的个数]

c.Arrays类

方便对数组进行操作,它所提供的方法都是静态的

常用方法:

  • 对数组进行排序:通过sort方法,按升序
  • 对数组进行比较:通过equals方法比较数组中的元素值是否相等

参考链接:https://www.cnblogs.com/zjfjava/p/5996666.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值