码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA 从入门到Just met java

时间:2018-08-20 23:26:16      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:port   center   javac   多线程   can   cut   相关   常用   lse   

学开发主要搞懂三个问题,是什么,为什么学,能做什么
        什么是计算机程序:计算机按照某种顺序而完成的一系列有序指令的集合。
    什么是开发语言:人类与计算机沟通的语言
      什么是java:一门优秀的开发语言,  
      为什么学java:这就问你自己了,可能吃饱了撑的。不想早死就别学。
  /** 计算机如何解决问题
 * 例如:给我一杯水 转身到厨房 找到一个杯子 找到水壶 在杯子中倒入一些水 拿着杯子走回桌子
 * 程序是用特殊的编程语言写出来表达如何解决我问题的
 * 程序=算法+数据结构
 * 算法:1.我们要让计算机做计算,就需要像这样找出计算步骤,如何用编程语言写出来
 * 2.计算机做的所有事情都叫算法
 * 3.计算机的步骤就是算法
 * 计算机的思维
 * 2x+6=20
 * 解方程
 * 枚举
 * 二分搜索
 * 枚举求最大公约数
 * 程序的执行步骤:解释 翻译 执行
 */
    java的作用:什么桌面程序,web程序,安卓程序等等都可以做
    Java技术平台:
           1.java SE是java的核心,能完成桌面应用程序的开发,是其它两者的基础;
              2.java EE主要用于网络程序和企业应用开发。
              3.java ME这个基本上没人用可以忽略
    java语言的特点:
         简单,跨平台,面向对象,可移植性,分布式,解释通用性,稳健,安全,多线程和同步机制。
         开发java程序,先下个jdk,再下一个ide(理解成开发工具就行),或者可以直接下个MyEclipse,安装都是傻瓜式操作。 
        jdk和jre的解释:

        1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。

        2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。

        3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。

        环境变量的配置:

        1.安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置"

        2.选择"高级"选项卡,点击"环境变量";

        1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk  path=%JAVA_HOME%\bin

        2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin

特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。

    classpath的配置:

        1):永久配置方式:classpath=.;c:\;e:\

        2):临时配置方式:set classpath=.;c:\;e:\

           java的运行机制:

        举个栗子:
package com.alphabet.entry;
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("helloworld");
    }
}
    编译之后, 我们得到了HelloWorld.class,
        在HelloWorld里面, 我们调用了 JAVA API中的 java.lang.System这个类的静态成员对象 out, out 的静态方法: public static void println(String string); 
        然后我们让虚拟机器来执行这个HelloWorld。
        1. jvm会在classpath中找到HelloWorld.class。
        2. jvm中的解释器(interpret)会把HelloWorld.class解释成字节码。
        3. 把解释后的字节码交由execution engin执行。
        4. execution engin会调用native method(即平台相关的字节码)来在host system的stdout(显示器)的指定部分打印出指定的字符串。
        5. 这样, 我们就看到"helloworld"字样了。

    javac命令和java命令做什么事情呢?

        要知道java是分两部分的:一个是编译,一个是运行。

        javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。

    java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.

    一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.

    java的基础语法:
            1.Unicode字符集:java语言使用的Unicode标准字符集。在Unicode字符集中,前128个字符刚好是ASCII码,但大部分国家的“字母表”中的字母都是Unicode字符集中的字母,因此java所使用的字母不仅包括通常的拉丁字母,还包括汉子、希腊字母等等。
        java关键字
    标识符:

     1),数字不可以开头。

     2),不可以使用关键字。

    变量的作用域和生存期:

     变量的作用域:

        作用域从变量定义的位置开始,到该变量所在的那对大括号结束;

    生命周期:

        变量从定义的位置开始就在内存中活了;

        变量到达它所在的作用域的时候就在内存中消失了;

    数据类型:java数据类型是一切编程的基础。
        java绝大部分的操作是基于内存的,如果没有内存一切都无法说起,而数据类型就是跟内存息息相关的事物,他会让我们合理的使用内存。只有基础越牢固,才能越往上。

        变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

        内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

       常用数据类型:byte、short、int、long、float、double、char、boolean

简单类型

boolean 

byte 

char 

short 

int

long

float 

double 

void 

二进制位数

16 

16 

32 

64 

32 

64 

-- 

封装器类

Boolean 

Byte 

Character 

Short 

Integer 

Long 

Float 

Double 

Void 

package com.alphabet.entry;
import java.lang.annotation.Native;

public class DataType {
    /**
     *     byte 数据类型是8位、有符号的,以二进制补码表示的整数;
     *     源码: public static final byte   MIN_VALUE = -128;
     *    最小值是 -128(-2^7);
     *    源码:public static final byte   MAX_VALUE = 127;
     *    最大值是 127(2^7-1);
     *    默认值是 0;
     *    byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
     *    by1是基本数据类型,by2是封装类
     */
    public static void byteType() {
        // TODO Auto-generated method stub
        byte by1=6;
        System.out.println(by1);
        Byte by2=8;
        String test=by2.toString();
        System.out.println(test);
        System.out.println(test.getClass());
    }
    /**
     * short 数据类型是 16 位、有符号的以二进制补码表示的整数
     * 最小值是 -32768(-2^15);
     * 最大值是 32767(2^15 - 1);
     * Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
     * 默认值是 0;
     * 
     */
    public static void shortType() {
        // TODO Auto-generated method stub
        short sh=8;
        System.out.println(sh);
        Short sh2=8;
        System.out.println(sh2);
    }
    /**
     * int 数据类型是32位、有符号的以二进制补码表示的整数;
     * 最小值是 -2,147,483,648(-2^31);
     * 最大值是 2,147,483,647(2^31 - 1);
     * 一般地整型变量默认为 int 类型
     * 默认是0
     * 也是最常用的类型
     *  @Native public static final int   MIN_VALUE = 0x80000000;
     *  @Native public static final int   MAX_VALUE = 0x7fffffff;
     *  
     */
    public static void intType() {
        // TODO Auto-generated method stub
        int int1=6;
        Integer int2=8;
        int int3=int2.intValue();
        System.out.println(int1);
        System.out.println(int2);
        System.out.println(int3);
        System.out.println(int2.MAX_VALUE);
        System.out.println(int2.MIN_VALUE);
    }
    /**
     * long:长整型
     * long 数据类型是 64 位、有符号的以二进制补码表示的整数;
     * 最小值是 -9,223,372,036,854,775,808(-2^63);
     * 最大值是 9,223,372,036,854,775,807(2^63 -1);
     * 这种类型主要使用在需要比较大整数的系统上;
     *
     */
    public static void longType() {
        // TODO Auto-generated method stub
        long long1=6;
        Long long2=8L;
        long long3=long2.SIZE;
        System.out.println(long1);
        System.out.println(long2);
        System.out.println(long3);
        System.out.println(long2.MAX_VALUE);
        System.out.println(long2.MIN_VALUE);
        System.out.println(long2.max(100, 999999999));
    }
    /**
     * float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
     * float 在储存大型浮点数组的时候可节省内存空间;
     * 默认值是 0.0f;
     * 浮点数不能用来表示精确的值,如货币;
     * 
     */
    public static void floatType() {
        // TODO Auto-generated method stub
        float f1=6;
        Float f2=8f;
        float f3=f2.SIZE;
        System.out.println(f1);
        System.out.println(f2);
        System.out.println(f3);
        System.out.println(f2.MAX_VALUE);
        System.out.println(f2.MIN_VALUE);
    }
    /**
     * char类型是一个单一的 16 位 Unicode 字符;
     * 最小值是 \u0000(即为0);
     * 最大值是 \uffff(即为65,535);
     * char 数据类型可以储存任何字符;
     * char可以输入任何东西,但是只唯一
     */
    public static void charType() {
        char c1=‘f‘;
        System.out.println(c1);
        Character c2=‘f‘;
        System.out.println(c2);
        /**
         * 为什么char和character不能来草字符串呢
         * 首先String不属于8种基本数据类型,String是一个引用类型的对象.他是专门用来处理字符串的
         * 因为char采用的是Unicode编码,所以基本上可以容纳所有的字符.
         * 而String是用来操作字符串的,String其实也就是一个char类型的数组
         */
        char[] c= {‘1‘,‘2‘,‘a‘,‘b‘,‘c‘,‘d‘,‘e‘};
        String d="12abcde";
        if (c.equals(d)) {
            System.out.println("一样的");
        }
    }
    /**
     * double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
     * 浮点数的默认类型为double类型;
     * double类型同样不能表示精确的值
       * //浮点计算是有误差的 例如
       * System.out.println(1.2-1.1);
     * double和float表示精确的数有问题
     */
    public void doubleType() {
        // TODO Auto-generated method stub
        double d1=6;
        Double d2=8d;
        double d3=d2.SIZE;
        System.out.println(d1);
        System.out.println(d2);
        System.out.println(d3);
        System.out.println(d2.MAX_VALUE);
        System.out.println(d2.MIN_VALUE);
    }
    /**
     * boolean数据类型表示一位的信息;
     * 只有两个取值:true 和 false;
     * 这种类型只作为一种标志来记录 true/false 情况;
     * 默认值是 false;
     * 
     */
    public static void booleanType() {
        // TODO Auto-generated method stub
        boolean b1=true;
        Boolean b2=false;
        boolean b3=b2.booleanValue();
        System.out.println(b1);
        System.out.println(b2);
        System.out.println(b3);
        System.out.println(b2.hashCode());
        System.out.println(b2.getClass());
    }
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}
  1. 运算符号:

    4)、逻辑运算符。

        & | ^ ! && ||

        逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。

        &: 只有两边都为true结果是true。否则就是false。

        |:只要两边都为false结果是false,否则就是true

        ^:异或:和或有点不一样。

             两边结果一样,就为false。

             两边结果不一样,就为true.

        & 和 &&区别: & :无论左边结果是什么,右边都参与运算。

                     &&:短路与,如果左边为false,那么右边不参数与运算。

        | 和|| 区别:|:两边都运算。

                    ||:短路或,如果左边为true,那么右边不参与运算。

    5)、位运算符:用于操作二进制位的运算符。

        & | ^

        << >> >>>(无符号右移)

  练习:对两个变量的数据进行互换。不需要第三方变量。

            int a = 3,b = 5;-->b = 3,a = 5;

        方法一:

            a = a + b; a = 8;

            b = a - b; b = 3;

            a = a - b; a = 5;

        方法二:

            a = a ^ b;//

            b = a ^ b;//b = a ^ b ^ b = a

            a = a ^ b;//a = a ^ b ^ a = b;

        练习:高效的算出 2*8 = 2<<3;

    数据类型转换

          自动类型转换

          数据类型要兼容

          目标类型大于类型

          强制类型转换

          目标类型小于源类型

运算符的优先级:

最高的优先级:()

最低的优先级:赋值运算符(=)

优先级顺序:算数运算符>关系运算符>逻辑运算符

Scanner sc=new Scanner(System.in);//在Consolo控制输出

// Scanner out=new Scanner((Readable) System.out);

条件语句:if(条件){语句序列} 如果什么什么就什么什么

 

switch (key) {
        case value:
            
            break;

        default:
            break;
        }     

JAVA 从入门到Just met java

标签:port   center   javac   多线程   can   cut   相关   常用   lse   

原文地址:https://www.cnblogs.com/lw687a/p/9508747.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!