java基本知识

1、java概述

1.1 java开发工程师编写软件:

(1)互联网:电商、P2P等等;
(2)企业级应用:ERP,CRM,BOS,OA等等;
ERP(Enterprise Resource Planning):即企业资源计划;
CRM(Customer relationship management):客户关系管理
BOS(baidu Object storage):对象存储;
OA(Office Automation):办公自动化;
(3)基础——javaSE标准版;企业——javaEE企业版;

1.2 java开发环境概述:

编写java程序前,需要安装java开发环境,JDK:java Development Kit;
JDK下载

1.3 jdk与jre:

jdk:java Development Kit;java开发环境,针对开发者;
jre:Java Runnning Environment;java运行环境,针对java使用者;

1.4 java跨平台特性:

(1)平台包括有windows,linux,mac OS;
(2)java程序可以在任意操作系统上运行,编写之后可以在任意系统上运行;
(3)java实现跨平台是依赖于java的虚拟机JVM(Java Virtual Machine);
(4)注意:java程序跨平台,但是虚拟机JVM是不跨平台的,即JVM相当于一个模拟器;

2、java程序介绍

2.1 java应用程序的编写流程:

(1)源文件:编写java源文件,扩展名为.java;
(2)编译:将源文件变异成字节码文件,扩展名为.class;
(3)运行:最后解释器来运行字节码文件;

2.2 java环境变量设置:

windows中,可以在环境变量中新建一个Java_Home,变量值为安装处的jdk目录,然后在用户path中编辑%Java_Home%/bin
或者直接在环境变量中的用户path中添加C:\Program Files\Java\jdk-10.0.1\bin

2.3 java编译运行:

java编译:java -d D:\virtualbox_share\Java\helloworld.java 注意程序中的类名需要和文件名相同,且大小写一致,后缀名为.java;生成.class字节码文件;否则会出现类是公共的,应在名为 的文件中声明的错误;
java运行:java helloworld 注意运行时不要添加任何后缀,否则会出现无法加载类的错误;

/*
    定义了一个类;
    定义了一个方法;
*/

public class helloworld{
    public static void main(String[] args){
        System.out.println("HelloWorld");
    }
}

编辑器:建议编写程序时使用notepad++;然后编译运行直接用jdk即可;
也可以用sublime;

2.4 关键字:

abstract,assert,boolean,break,byte,case,catch,char,class,const,continue,default,do,double,else,enum,extends,final,finally,float,for,goto,if,implements,import,instanceof,int,interface,long,native,new,package,private,protected,public,return,strictfp,short,static,super,switch,synchronized,this,throw,throws,transient,try,void,volatile,while

2.5 标识符规则:

除了关键字以外的都是标识符;
(1)由字母大小写共52个,数字10个,下划线,和$组成;
(2)注意:不能用数字开头,严格区分大小写;
(3)名称可以是_abc, oa, a0, a$a, _void
(4)好的命名方式是:类的名字尽量用单词首字母大写,方便识别,例如:Scikit-learn,AddStudent,方便识别

3、数据类型与数据量

Java中的数据量分为常量和变量,常量就是不变的量,变量就是可以改变的量
数据类型:整型int,浮点数float,字符型string,布尔型bool;

整数类型:十进制(13,15);二进制(0b1011);十六进制(0x23a3,0xaa);八进制(077,016);
小数类型:1.0、-5.235、6.234;
布尔类型:true,false;
字符类型:例如'a', 'A', '0', '加';(用单引号包含)
字符串类型:“nfafn”, "是我的事", “null”;(用双引号包含)

变量:是内存中的小容器,用来存储数据,有个内存地址只能存储一个数据;计算机存储的最小信息单元叫“位”,而计算机最小的存储单元是字节(即8位);

3.1 数据类型:4类8种

变量必须要有明确的数据类型,指定类型的变量只能装载指定的数据;

java中默认的整数类型是int类型;
例如:122414就是整型,后面加个L,即122414L就是long型;
java默认的浮点型是double类型;
例如:5.28就是double型,后面加个F,即5.28F就是float类型;

3.2 变量创建的三要素:

内存中存储数据,但是存储数据前必须规定类型和名称,然后划分存储区域,存储数据;
数据类型 变量 = 变量值int a = 100

/*
    定义出所有数据类型的变量;
    四类八种;
*/

public class Variable{
    public static void main(String[] args){
        //定义整数类型,字节类型 byte类型,1个字节
        byte a_byte = 16;
        //System.out.println("byte类型");
        System.out.println(a_byte);
        
        //短整型数据,short类型,2个字节;
        short a_short = 14143;
        System.out.println(a_short);

        //定义int类型;4个字节
        int a_int = 167111111;
        System.out.println(a_int);
        
        //定义long类型,L,8个字节
        long a_long =124894149854981L;
        System.out.println(a_long);
        
        //浮点型数据,单精度float类型,4个字节
        float a_float = 3.32189474F;
        System.out.println(a_float);
        
        //浮点型数据,双精度double类型,8个字节
        double a_double = 3.32189474;
        System.out.println(a_double);
        
        //字符类型,2个字节
        char a_char = 'g';
        System.out.println(a_char);
        
        //布尔类型,boolean,1个字节
        boolean a_bool = true;
        System.out.println(a_bool);
        
        //再加一种非基本数据类型的字符串类型;字符串属于引用类型
        String s = "java和python类似,赶紧把java学完;";
        System.out.println(s);
    }
}

变量注意事项:
(1)使用前必须初始化;
(2)作用域只在某个函数内部,即为局部变量;
(3)变量不允许重复定义;——数据类型不重定义,数据值可以发生改变;

3.3 数据类型转换

范围小的数据类型值,可以直接转换为范围大的类型;(double->float正确,double->int正确)
范围大的数据类型值,不能直接转换为范围小的类型;(int->long错误,float->long 错误)

/*
    数据类型的转换;
    自动:取值范围小的类型,自动转成取值范围大的类型;
*/
public class DataConversion{
    public static void main(String[] args){
        double d = 1000; //出现类型自动转换,int自动转换为double;
        System.out.println(d);
        
        int i = 100;
        double d2 = i; //出现类型自动转换,int自动转为double;
        System.out.println(i);
        
        byte b = 10;
        int j = b; //出现类型自动转换,byte自动转换为int类型;
        System.out.println(j);
    }
}

强制数据类型转换:
范围小的数据转换为范围大的数据;

/*
    数据类型的强制转换
    强制:数据类型取值范围大的,转成取值范围小的;
    语法:
        被转后的数据类型 变量名 = (被转换后数据类型)要被转的数据;
*/
public class DataCast{
    public static void main(String[] args){
        double a_double = 342;
        int a_int = (int)a_double;
        System.out.println(a_int);
        
        byte a_byte = (byte)129; //超出范围2位,从-128开始向右变;
        System.out.println(a_byte);
    }
}

4、运算符

4.1 算术运算符:

/*
    算术运算符
    + 加法,连接
    - 减法
    * 乘法
    / 除法
    % 取模,获取余数
    ++ 自增1
    -- 自减1
*/
public class Operator{
    public static void main(String[] args){
        // + 连接作用,遇到字符串时,作用是将一个字符串和其他数据连接起来
        int a = 25;
        String s = "你猜他多大:";

        s = s + a;
        System.out.println(s);
        
        //除法运算和取模运算
        int remainder = 45;
        int divisor = 7;
        System.out.println(remainder/divisor); //6
        System.out.println(remainder%divisor); //3
        
        //自增运算
        int sum = 1;
        ++sum;
        int y = sum++;
        System.out.println(sum); //3
        System.out.println(y);   //2
    }
}

4.2 赋值运算符:

/*
    赋值运算符
    =
    +=  -=  *=   /=  %=
*/
public class Operator_Assignment{
    public static void main(String[] args){
        // = 赋值运算,将右面的值,赋值给左边的变量
        int a = 3;
        a = a + 3;
        System.out.println(a);
        
        // += 辅助运算符
        int b = 3;
        b += 9;
        System.out.println(b);
        
        byte b_byte = 1;
        b_byte += 1;  //实际上相当于b_byte = (b_byte)(b_byte+1)
        System.out.println(b_byte);
    }
}

4.3 比较运算符:

/*
    比较运算符:
        计算结果只有true,false
    == 比较符号两边的数据
    !=    >    <    >=    <=
*/
public class Operator_Comparsion{
    public static void main(String[] args){
        int a = 3;
        int b = 4;
        System.out.println(a=b);
        System.out.println(a==b);
        System.out.println(1!=3);
        System.out.println(a>b);
    }
}

4.4 逻辑运算符

与或非,短路与,短路或;

/*
    逻辑运算符:对两个boolean类型数据之间进行运算
        结果也是boolean类型
    &   有一个是false,则输出结果为false;
    |   有一个是true,则输出结果为true;
    !   取反
    ^   异或,相同取true,不同取false;
    &&  短路与,一边是false,则另一边不运行;
    ||  短路或,一边是true,另一边不运行
*/
public class Operator_logic{
    public static void main(String[] args){
        System.out.println(false & true);
        System.out.println(false | true);
        System.out.println(false ^ true);
        System.out.println( !true);
        
        int i = 3;
        int j = 4;
        System.out.println(3>4 && ++j>2);
        System.out.println(3>4 || ++j>2);
    }
}

4.5 三元不等式:

/*
    三元运算符
        公式:布尔表达式 ? 结果1 : 结果2
*/

public class Operator_Ternary{
    public static void main(String[] args){
        System.out.println(3>5 ? 99:88);
        System.out.println(1==1 ? "相等": "不等");
    }
}

5、商场库存案例与分析

  • (1)清单顶部为固定数据,直接打印即可;
  • (2)清单中部为商品,为变化的数据,需要记录商品信息后,打印;
其中包含了4个属性:
   品牌型号:即商品名称,String型;
   尺寸:物品大小,double型;
   价格:物品单价,double型;
   存库数:这一项为每种商品的库存个数,int型;
  • (3)清单底部包含了统计操作,需要经过计算后打印;
/*
    实现商品库存清单案例
    步骤:
        1、实现表头,是固定数据,直接输出语句
        2、实现表格中间
        3、实现表格底部,一部分数据固定,另一部分数据商品数据进行科学计算;
*/

public class Shop_In_Stock{
    public static void main(String[] args){
        //输出表头
        System.out.println("---------------商场库存清单--------------");
        System.out.println("品牌型号\t尺寸\t价格\t存库数");

        //输出表格中间
        String macBrand = "MacBookAir";
        double macsize = 13.3;
        double macprice = 6988.88;
        int macstock = 5;

        String ThinkpadBrand = "ThinkpadT450";
        double Thinkpadsize = 14.0;
        double Thinkpadprice = 5999.99;
        int Thinkpadstock = 10;

        String ASUSBrand = "ASUS-PL5800";
        double ASUSsize = 15.6;
        double ASUSprice = 4999.5;
        int ASUSstock = 18;

        System.out.println(macBrand+"\t"+macsize+"\t"+macprice+"\t"+macstock);
        System.out.println(ThinkpadBrand+"\t"+Thinkpadsize+"\t"+Thinkpadprice+"\t"+Thinkpadstock);
        System.out.println(ASUSBrand+"\t"+ASUSsize+"\t"+ASUSprice+"\t"+ASUSstock);


        //输出表格底部
        int totalstock = macstock + Thinkpadstock + ASUSstock;
        double Amountstock = macprice*macstock + Thinkpadprice*Thinkpadstock + ASUSprice*ASUSstock;
        System.out.println("总库存数:"+totalstock);
        System.out.println("库存商品总金额:"+Amountstock);

    }
}
posted @ 2018-09-08 17:17  hugechuanqi  阅读(149)  评论(0编辑  收藏  举报