二 . Java语言基础

二 . Java语言基础

一 . 变量

一.内存(瞬时,临时状态的存储)
  1.内存(概念):
        内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此    内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬    盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将    结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。
  1.1什么是内存?
        内存即是一块瞬时状态的存储空间,有一定的容量。
        内存的造价比较高,整个的计算机硬件资源是比较稀缺的。(所以内存要省着点用)
        内存制造是工业上的瓶颈,多数大容量的内存都是由多个内存条组成的。
  2.外存(硬盘,持久状态的存储)
  3.计算机给Java多大的内存空间?
    java虚拟机(java程序),默认分配的物理内存容量是计算机的1/8。
  4.计算机存储的基本单位是什么?
    (1)bit(最小的基本单位,位)  8位=1字节(8 bits=1Byte)
    (2)Byte(基本单位,字节)
    (3)KB-MB-GB-TB-PB-EB-ZB-YB-BB-NB-DB-CB-XB(1024进制)
二.变量
   1.概念:计算机内存中的一块存储空间,是存储数据的基本单元。(定义和使用变量,就是在使用内存)
     eg:整个内存是一家酒店,当中包含了多个房间。 变量就是酒店的某一个房间。  酒店的房间——变量
         房间的容量(大小)不同(单人间,两人间,总统套房等......)             房间的类型——数据类型
         每个房间都有一个唯一的门牌号。                                    房间门牌号——变量名
         每个房间的客人(类型)也不同。                                     房间的客人——值
   2.定义变量
     (1)声名:数据类型 变量名;
     (2)赋值:变量名=值;
     eg:int money;//开辟整数变量空间
        money = 100;//将整数值赋给变量
     注意:java是强类型语言,变量的类型必须与数据的类型一致。(java,C++,C#)
          JavaScript是一种弱类型语言,变量的类型与数据的类型无需一致。
   3.变量的多重定义方式
     (1)先声明,再赋值(常用)
     (2)声名并赋值 eg:数据类型 变量名 = 值;(常用)
     (3)数据类型 变量1,变量2,变量3 = 值3,变量4,变量5 = 值5;
   4.成员变量和局部变量的区别
     (1)定义位置:
        成员变量:类中,方法外。
        局部变量:方法中或形式参数。
     (2)初始化值
        成员变量:有默认初始化值
        局部变量:无默认初始化值,必须先赋值再使用。
     (3)作用范围
        成员变量再类中,局部变量再方法中。
     (4)内存中的位置
        成员变量:堆内存
        局部变量:栈内存
     (5)生命周期
        成员变量:随着对象的创建而存在,随着对象的消失而消失。
        局部变量:随着方法的调用而存在,随着方法的调用完毕而消失。
     注意事项:
        如果局部变量和成员变量重名,采取就近原则。
三.常量
   1.概念:在程序执行过程中,其值不可发生改变的量。
   2.分类:
     字面值常量:字符串 整数 小数 字符 布尔 空常量
     自定义常量

二 . 数据类型

java中的变量具有严格的数据类型区分。(强类型语言)
在java语言中,任何一个值,都有其对应类型的变量。
一.数据类型
   1.基本数据类型
     是指保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。
     (1)整数(四种)
     (2)小数(两种)
     (3)布尔
     (4)字符
   1.1整数
      类型        字节        取值范围(二进制)                     取值范围(十进制)
      Byte       1字节       -2^7--2^7-1                         -128--127
      short      2字节       -2^15--2^15-1                     -32768--32767
      int        4字节       -2^31--2^31-1                -2147483648--2147483647
      long       8字节       -2^63--2^63-1       -9223372036854775808--9223372036854775807
      注意:java中所有整数字面值默认类型为int,当整数字面值超过int的取值范围时 ,则提醒过大的整数。
   1.2小数(浮点数)
      类型        字节        负数取值范围                        正数取值范围
      float       4     -3.4E+38——-1.4E-48                 1.4E-45——3.4E+38
      double      8    -1.7E+308——-4.9E-324               4.9E-324——1.7E+308
      注意:java中任何小数字面值默认类型都是double,如果要存储到float变量中,需要追加‘F’。
           浮点型数值采用科学计数法表示:
           eg:2E3等价于2*10^3(2000.0)   3E5等价于3*10^5(300000.0)
   1.3布尔(boolean) 不可与其他类型转换
      类型        字节          取值范围                         描述
      boolean     1          true/false                      真或假
      可直接赋值true或false。
      也可赋值一个结果为true或false的表达式。
      注意:java中的boolean不能参与算术运算。
   1.4字符
      背景知识
      (1)ASCII(American Standard Code for Information Interchange)美国信息交换标准代码.
         基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
         ASCII是最通用的信息交换标准,为英文字符设定了统一并且唯一的二进制编码。
      (2)Unicode(万国码,万维码)是计算机科学领域里的一项业界标准,包括字符集,编码方案。
         它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言,跨平台进行文本转换,处理的要求。          (其中包括ASCII)
      类型        字节           取值范围                        字符编码
      char        2            0——65535                 Unicode字符集(万国码)        character
      注意:Unicode中每个字符都对应一个二进制整数,可以使用多种方式赋值。
      eg:char c1 = 'A';(通过''描述为字符复制)
          char c2 = 65;(通过十进制数65在字符集中对应的字符赋值)
          char c3 = '\u0041';(通过十六进制数41在字符集中对应的字符赋值,'\u'代表转义)
      (3)转义字符
         问题:如何在程序中输出一个单引号字符?
              char c4 = ''';  //编译错误,未结束的字符文字
         为了解决这一问题,Java采用了转义字符来表示单引号和一些特殊符号。
         转义字符                 描述
           \n                   换行符
           \t                缩进(制表位)
           \\                   反斜线
           \'                   单引号
           \"                   双引号
   2.引用数据类型(对象类型)
     是指保存在堆内存中的对象,变量中保存实际上是一个指针,指向内存中的一个位置,该位置用来保存对象。
     (1)字符串
     (2)数组
     (3)对象
     (4)类(class)
     (5)接口(interface)
   2.1字符串
         类型                 取值范围                  字符编码
        String           任何" "之间的字面值         Unicode字符序列
package Winter.multithreading.variable;

public class DataType {
    public static void main(String[] args) {
        //long
        long l = 10;
        System.out.println(l);
        //float 单精度浮点型;double 双精度浮点型
        double d = 1.1;
        System.out.println(d);
        double d2 = 2;
        System.out.println(d2);
        float f = 1.3F;
        //科学计数法
        double d3 = 2E3;//2*10^3
        System.out.println(d3);
        double d4 = 3E8;//3*10^8
        System.out.println(d4);
        float f1 = 5E4f;
        System.out.println(f1);
        //布尔类型
        boolean b1 =true;
        //字符类型,字符参加加法运算,其实就是拿该字符在计算机中存储所表示的数据值来运算的。
        System.out.println(b1);
        char c1 = 'A';         //(通过''描述为字符复制)
        char c2 = 65;          //(通过十进制数65在字符集中对应的字符赋值)
        char c3 = '\u0041';    //(通过十六进制数41在字符集中对应的字符赋值,代表转义)
        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);
        //(3)转义字符
        //   问题:如何在程序中输出一个单引号字符?
        char c4 = '\'';
        System.out.println(c4);
        System.out.println("\\");//输出结果:\
        System.out.println("u0041");
        System.out.println("\u0041");
        //字符串(引用类型)
        String s1 = "Java Engineer";
        System.out.println(s1);
    }
}

三 . 数据类型转换

二.类型转换
   1.自动类型转换:
     两种类型相互兼容,目标类型大于源类型。
   2.强制类型转换
     两种类型相互兼容,目标类型小于源类型。
   2.1强制类型转换规则
        (1)整数长度足够,数据完整。
           eg:int i = 100; byte b = (byte)i;    //b=100
        (2)整数长度不够,数据截断。
           eg:int i = 10000; byte b = (byte)i;  //b=16(符号位变化,可能变为负数)
        (3)小数强转整数,数据截断。
           eg:double d = 2.5; int i = (int)d;   //i=2(小数位舍掉)
        (4)字符与整数互转,数据完整。
           eg:char c = 65;  int i = c;          //i=65

四 . 运算符

一.运算符
   算数运算符:    +    -    *    /    %(模,取余)
   1.一元运算符(只有一个操作数)
     ++:递增,变量值+1
     --:递减,变量值-1
     ++在前:先++,再打印自增后的值。
     ++在后:先打印当前值,再++。
   2.赋值运算符:等号右边赋值给等号左边
    操作符           描述
     =            直接赋值
     +=          求和后赋值
     -=          求差后赋值
     *=          求积后赋值
     /=          求商后赋值
     %=          求余后赋值
   3.关系运算符
     == 等于;!=不等于
   4.逻辑运算符:两个boolean类型的操作数或表达式进行逻辑比较
      操作符            语义             描述
       &&               与        同时为真,结果为真
       ||               或        一个为真,结果为真
       !               非              取反
   5.三元运算符:将判断后的结果赋值给变量
      操作符            语义                         描述
       ?:       布尔表达式?结果1:结果2      表达式为真得结果1,为假时得结果2
二.表达式
   使用运算符连接的变量或字面值,并可以得到一个最终结果。
三.自动类型提升
   进行算术运算时:
   (1)两个操作数有一个为double,计算结果提升为double。
   (2)两个操作数中没有double,有一个为float,计算结果提升为float。
   (3)两个操作中没有float,有一个为long,计算结果提升为long。
   (4)如果操作数中没有long,有一个为int,则提升为int。
   (5)如果操作数中没有int,均为short或byte,计算结果仍旧提升为int。
   注意:任何类型与String相加(+)时即拼接,其结果自动提升为String。
package Winter.multithreading.variable;

public class Calculate {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;
        System.out.println(a/b);//求商
        System.out.println(a%b);//求余
        double a1 = 10.0;
        int b1 = 3;
        System.out.println(a1/b1);//3.3333333333333335
        //   1.一元运算符(只有一个操作数)
        //     ++:递增,变量值+1
        //     --:递减,变量值-1
        //单独使用:放在变量前后结果一样。
        //参与运算:在变量前,先自增(自减),再进行其他运算。
        //        在变量后,先以原值进行其他运算,再自增(自减)
        int num1 =100;
        System.out.println(num1++);//当前++操作优先级较低,即先打印值,再++
        System.out.println(++num1);//先++,再打印值
        int num2 = 100;
        //int num3 = num2++;
        int num4 = ++num2;
        //System.out.println(num3);
        System.out.println(num4);
    }
}

五 . 扫描仪控制台录入

一.控制台输入
   1.程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行,达到用户与程序之间的交互。
   2.导包语法:import 包名.类名;//将外部class文件的功能引入自身文件中。
   3.使用顺序
   3.1导入 java.util.Scanner;
   3.2声名Scanner类型的变量;
   3.3使用Scanner类中对应的方法(区分类型):
        import java.util.Scanner;
        Scanner s = new Scanner(System.in);
        (1)int i1 = s.nextInt();          获取整数
        (2)double i2 = s.nextDouble();    获取小数
        (3)String i3 = s.next();          获取字符串
        (4)char i4 = s.next.chatAt(0);    获取字符(接收一个完整的字符串,获取其中的第一个字符)
        注意:如果输入了不匹配的数据,则会产生java.util.InputMismatchException 输入不匹配异常。
package Winter.multithreading.variable;
/**
 * 我好喜欢你*/
import java.util.Scanner;

public class Scanner02 {
    public static void main(String[] args) {
        Scanner s1 = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int i1 = s1.nextInt();
        double d1 = s1.nextDouble();
        String s = s1.next();
        char c = s1.next().charAt(0);//获取字符(接收一个完整的字符串,获取其中的第一个字符)
        System.out.println("这个整数是:"+i1);
        System.out.println("这个小数是:"+d1);
        System.out.println("姓名:"+s);
        System.out.println(c);
    }
}

六 .标识符与命名规范(对以后敲代码很重要)

1.定义规则:
  不能以数字开头
  不能是关键字
  严格区分大小写
2.命名规范
  (1)类与接口:
     首字母大写,如果有多个单词,每个单词首字母大写。
     变量和方法:首字母小写,如有多个单词,从第二个单词开始首字母大写。
     常量名(自定义常量):所有字母都大写,多个单词用下划线隔开。
     包名:全部小写,若有多级用.隔开。(一般是公司的域名反写)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值