Java(一)(二)

2019-02-28 07:50:49来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

1.JDK  JRE  JVM三者的关系:

  JDK是开发者工具  JRE是运行环境,包含我们开发时所需要的类库  JVM是虚拟机 它是一个载体 平台

  JDK -> JRE -> JVM (包含关系,在安装时安装好了JDK就可以了)

2.JDK重要版本:

  JDK1.5 里程碑  JDK7 8市面上最常见的版本,为最稳定的版本 JDK11  2018年最新版本

3.环境配置:

  检测配置成功: CMD中输入java javac 有一长串信息及安装成功 版本检测:java -version

4.Eclipse:

  Java package(创建java工程) -> package(创建包) -> class(创建类)

  自动编译   运行: 快捷键 Alt + F11 (但是不推荐)

5.Eclipse工作空间的基本配置:
  A:行号的显示和隐藏
       显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers即可。
       隐藏:把上面的动作再做一次。

  B:字体大小及颜色
    a:Java代码区域的字体大小和颜色:
    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java -- Java Edit Text Font
    b:控制台
    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font
    c:其他文件
    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font


  C:窗体给弄乱了,怎么办?
    window -- Perspective -- Reset Perspective
    window -- Perspective -- save Perspective


  D:控制台找不到了,怎么办?
    Window--Show View—Console

6.注释:

  单行注释: //  多行注释:/**/  文档注释:/***/

7.关键字:

  a:被java赋予特殊含义的单词

  b:所有字母为小写,高级文本编辑器中有高亮显示.

8.标识符:

  a:以 字母 _(下划线) $ 开头

  b:不能以数字开头 关键字不能为标识符

  c:中间不能有空格(可以用_(下划线代替))

9.常量:

  a:在程序执行期间不可以改变的值

  b:整型常量  浮点常量  布尔常量  字符常量(单引号引起的字符)  字符串常量(双引号引起的字符)  空常量

10.变量:

  定义的格式  数据类型   变量名 =  初始值;

  a:在程序执行过程中.其值在[某个范围内]可以发生改变的数据

  b:在程序中创建了一块内存空间(小盒子),用来记录不断发生改变的常量

  c:变量一定要有初始值. int a=0; 也可以

  变量小问题:     

    byte,short,int,long,float,double  问题:为什么float占4个字节,long占8个字节,float却比long要大呢?  

                      因为整数和小数,底层的二进制存储结构不同.
            
System.out.println(Float.MAX_VALUE - Long.MAX_VALUE);

  总结:

    1. 变量名不允许重复
         2. 变量[使用之前]必须完成初始化
         3. 一条语句可以定义n个变量,但是中间需要通过逗号隔开

11.数据类型:

  整数类型:byte 1个字节 shout 2个字节 int 4个字节 long(L)   8个字节

  浮点类型:float(F) 4个字节 double  8个字节

  布尔类型:true 1个字节 false     1个字节  [ 理论上来说,八分之一个字节就能表示他的大小,但是计算机当中最小的存储单位是字节,所以它应该占1个字节。]

  字符串类型:char  2个字节

12.数据的隐式转换:

  总结:
        1: 将小的数据,给大的数据类型赋值,可以直接赋值。
        2. 当小的数据类型和大的数类型做运算的时候,会先将小的,提升为大的之后,再做运算。
    
      举例:
          1:  
              int i = 10;    // 4个字节
              System.out.println(i);

              double d = i; // 8个字节
              System.out.println(d);

          2:
              byte a = 100;
              int b = 100;
              int c = a + b;

13.数据之间的强制转换:

    格式:
        (要强转的类型)将要转换的值;

  总结:将大的数据,给小的数据赋值时,不能直接赋值,需进行强转

      举例:
        1:

            int i = 100;
            byte b = (byte)i;
            System.out.println(b);

    注意:
        如果强转的值, 超过了数据类型的取值范围, 那么结果可能会跟我们期望的结果不同(损失精度)
    
        byte b = (byte)130;        -->  127
                                    -->  -126

14.算术运算符:

    算数运算符(自增自减运算符)
            赋值运算符        
            关系运算符[比较运算符]
            逻辑运算符
            三元运算符[三目运算符]

15.字符和字符串参与加法操作:

  System.out.println('a' + 1); // 输出结果?  98

  当char类型和整数类型进行运算的时候,实际是 找到底层的ASCII数值,然后进行运算

16.++和--自增自减运算符:

  a++: 先用自己去参与运算,再进行自增

  ++a:先指针,再去参与运算

17.逻辑运算符:

   & :无论左边返回的结果是true还是false, 右边都必须执行

  &&: 有false则false

   | :

  || : 有true则true

  ^(异或) : 相同为false,不同为true  特点:一个数,被另外一个数,异或两次,该数本身不变。

  举例:

  实现两个变量的数值交换, 不允许定义三方变量,怎么做?

            public static void main(String[] args) {
                int a = 10;
                int b = 20;
                
                a = a ^ b;        // 10 ^ 20
                b = a ^ b;        // 10 ^ 20 ^ 20        --> 10
                a = a ^ b;        // 10 ^ 20 ^ 10     --> 20
                
                System.out.println(a);
                System.out.println(b);
            }

 

18.三元运算符:

  格式:  (表达式)?值1:值2;

  先执行表达式,  true则执行值1  false则执行值2

19.Scanner键盘录入:

  

 1 键盘录入两个数据并求和
 2 
 3     public class Demo_Scanner {
 4         public static void main(String[] args) {
 5             // 1. 创建Scanner键盘录入对象(机器)
 6             Scanner sc = new Scanner(System.in);
 7             
 8             System.out.println("请输入两个整数:");
 9             
10             // 2. 使用机器的功能,做两次键盘录入
11             int num1 = sc.nextInt();
12             int num2 = sc.nextInt();
13             
14             // 3. 求和
15             System.out.println(num1 + num2);
16         }
17     }

20.if语句:

  三种格式:

(1) 
    if(表达式){
        语句体      
    }
(2)
    if(表达式){
        语句体1      
    }else{
        语句体2
    }
(3)
     if(表达式){
        语句体1      
    }else if{
        语句体2
    }else{
        语句体3
    }

 

 

   执行流程:
     首先计算比较表达式1看其返回值是true还是false,
     如果是true,就执行语句体1,if语句结束。
     如果是false,接着计算比较表达式2看其返回值是true还是false,
     如果是true,就执行语句体2,if语句结束。
     如果是false,接着计算比较表达式3看其返回值是true还是false,
     如果都是false,就执行语句体n+1。
    注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示 

30.switch语句:

格式:        
      switch(将要匹配的值) {
          case 值1:
              语句体1;
          break;
          case 值2:
              语句体2;
              break;
              …
           default:    
              语句体n+1;
               break;
            }    

 

case穿透:

public class Demo3_Switch {
    /*
     * 结论:switch语句中的break可以省略,但是会出现case穿透的现象
     * 
     *         细节:
     *            当表达式匹配成功之后,执行其对应的语句体,但是没有遇到break,这时候switch将会进入疯狂状态
     *                不会再进行case的匹配的,只是疯狂的向下执行,寻找break
     * 
     * 需求:键盘录入数值,根据数值打印内容
     *             1-5输出工作日
     *             6-7输出休息日
     * 
     * 
     * 问题:
     *         什么时候该使用if,什么时候该使用switch?
     * 
     *             对于范围性的判断,使用if语句更加合适
     * 
     *             一般匹配固定值的时候,switch更加合理
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入:");
        int week = sc.nextInt();
        
        switch (week) {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            System.out.println("工作日");
            break;
        case 6:
        case 7:
            System.out.println("休息日");
            break;
        default:
            System.out.println("数据非法");
            break;
        }
        
    }
}

 


原文链接:https://www.cnblogs.com/prodqi/p/10448881.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:jsp中的地址引用

下一篇:URL和URI的区别