zoukankan      html  css  js  c++  java
  • java基础2---属性

    第一节、变量(属性的组成一)

    一、变量的概念:

    变量是一个代名词,指代在内存中开辟的存储空间,

    注:存储空间用于存放运算过程中需要用到的数据

    注:方便理解,变量是山西省这个名字;存储空间就是山西省这个占用空间;值就是山西省的人、植物等;

    二、变量的使用

    1、变量的声明

    (1)声明内容

    变量的声明包含两点:变量名和数据类型;

    (2)声明效果

    声明后,JVM会为该变量在内存中开辟存储空间,不同的变量类型决定了存储空间的结构;

    (3)注意事项

    (a)未经声明的变量不能使用,否则会报编译异常

    (b)一条语句可以声明多个同类型变量

    int a=1, b=2;

    int c, d=3;

    (c)变量的值和类型必须对应;

    2、变量的命名规范

    (1)能:由字母、数字、“_”或“$”符组成

    (2)不能:

        不能以数字开头;

        不能是java保留字(一些Java语言规定好的,有特殊含义的字符),如:int、if、else、for、break等

    (3)建议:中文可以作为变量名,但不提倡使用。

    (3)注意:Java大小写敏感,即:严格区分大小写,在给变量声明和使用保持一致。

    3、变量的初始化

    (1)初始化方式

    (a)在声明时候初始化(注:局部变量一定是需要这样的)

    (b)在声明后,第一次使用前初始化

    (c)类加载的时候,给与默认初始化值

    int类型变量默认初始值为0
    float类型变量默认初始值为0.0f
    double类型变量默认初始值为0.0
    boolean类型变量默认初始值为false
    char类型变量默认初始值为0(ASCII码)
    long类型变量默认初始值为0

    所有对象引用类型变量默认初始值为null

    成员有两种特殊的类型,static属性与instance属性,初始化的时机是不同的。instance属性在创建实例的时候初始化,static属性在类加载,也就是第一次用到这个类的时候初始化,对于后来的实例的创建,不再次进行初始化

    (2)初始化注意事项

    (a)未经初始化的变量的使用(局部的不能,成员的可以)

    4、变量的操作

    (1)概述

    变量的操作就是对所存储数的操作;

    (2)种类

    (a)运算操作:注意值必须和类型匹配

    (b)输出操作:

    (c)初始化:

    (d)声明

    第二节、基本数据类型(属性的组成二.1)

    一、数据类型简介

    1、概念

    JVM会为该变量在内存中开辟存储空间,不同的数据类型决定了该存储空间的结构和存储大小;从而有效管理存储空间;

    数据类型就相当于省---市---县—乡等不同类型;

    2、种类

    基本数据类型和引用数据类型两种;

    3、数据类型和数据结构的区别(为了记忆自己想的,没有验证)

    基本数据类型是原子

    数据结构是分子

    二、基本数据类型简介

    1、种类

    基本数据类型主要分为4大类 (整数类型、浮点类型、char、boolean);

     整数类型又分为了4小类(byte、short、int、long);

    浮点类型也分了2小类(float、double),

    最常用的有5种,分别为int、long、double、char、boolean   

    2、boolean类型

    2.1概述

    boolean类型适用于关系、逻辑运算, 表示某个条件是否成立;true表示条件成立, 而false表示条件不成立。

    2.2使用

    2.2.1使用一:赋值

    (1)直接用英文字母true或false

    (2)关系运算的结果,所谓关系运算就是比较两个变量的大小相等等关系

    2.2.2使用二:输出

    (1)输出变量的结果是false或者true

    3、int

    3.1、概述

    int是最常用的整数类型,一个int类型的变量占用4个字节,即32位的内存空间。Int的最大表示范围为:-231~231-1,即-2147483648 ~2147483647,大约正负21个亿多些

    3.2、整数直接量是int类型

    3.2.1概述

    所谓整数直接量(literal)就是直接写出的整数,例如:下面的语句中,100就是直接量。 int a=100;

    3.3、使用

    3.3.1使用一(赋值)

    (1)超出范围:

    整数的直接量的类型默认为int类型,如果直接写出的整数超过了int的表达范围,将会出现编译错误,下面的语句,就是因为超出了整数的范围而导致的编译错误。 copytextpop-up

    int d = 10000000000; // 编译错误10000000000这个数值写出来就是错误的,因为Java认为所有直接写出的整数都是int类型,而这个数值超过了int的表达范围。

    (2)直接量类型:

    除了通常的十进制数字形式,整数直接量也可以写成16进制的形式(以0X或0x开头)或8进制的形式(以0开头)或者一个字符,请看如下直接量四种表现形式:copytextpop-up

    int a = 100000; // 10进制

    int b = 0x186a0; // 16进制

    int c = 0303240; // 8进制

    int d = ‘d’;//字符:输出是字符对于的unicode编码的十进制;

    3.3.2使用二:除法取整

    若对两个整数相除,会舍弃小数的部分(注意:不是四舍五入),结果也是整数。

    3.3.3使用三:运算溢出

    当两个整数进行运算时, 其结果可能会超过整数的范围而发生溢出,正数过大而产生的溢出,结果为负数;负数过大而产生的溢出,结果为正数

    3.3.4使用四:sysout输出

    不管值是什么,输出都是int类型的10进制;

    4、Long类型

    4.1概述

    在表示整数时,如果int类型的范围不够,可以使用long类型,一个long型的变量占用8个字节(即64位),最大表示范围为:-263 ~ 263-1,即 -9223372036854775808 ~ 9223372036854775807

    4.2使用

    对于较大的整数运算(超过int的表达范围),可以使用long型

    4.2.1赋值

    值后面必须加l或者L,不能虽然类型是long,但是值是int;

    值超过int类型,会报溢出;

    4.3应用

    JDK提供 System.currentTimeMillis() 方法,返回1970年1月1日零点到此时此刻所经历的毫秒数,数据太大,故其数据类型为long

    long time = System.currentTimeMillis();

    5、Double类型

    5.1概述

    double类型的精度值是float类型的两倍,因此而得名双精度;大多数场合使用double表示浮点数

    5.2使用

    5.2.1赋值---浮点数直接量是double类型

    书写方式:浮点数的直接量有两种写法:

    1)通常写法,如:3.14、314、0.1、.5。

    2)科学计数法,如:1.25E2、1.25e2、1.25E-2。其中,1.25E2表示1.25乘以10的2次方。

    注:如果类型是float:如果需要表示float类型的直接量,需要加“f”或“F”后缀;

    例如float f1 = 3.14   //编译错误,应该写成3.14f;

    5.2.2运算

    问题:double运算时会出现舍入误差

    原因:2进制系统中无法精确的表示1/10,就好像十进制系统中无法精确的表示1/3一样

    解决方案:如果需要精确的运算可以考虑放弃使用double或float而采用BigDecimal 类来实现;

    6、Char

    6.1概述

    字符类型char:事实上是一个16位无符号整数(short类型的正数)

    char型变量存放的值:其实就是这个两字节的short类型的编号

    char显示的内容:这个编码类似于字符点阵的身份证号;对应这个编码找到字符点阵去显示这个点阵,显示出来后即这个字符

    注:Java字符类型采用Unicode字符集编码(通用码、统一码、万国码),而Unicode是世界通用的定长字符集,所有的字符都是16位来表示

    注:字符点阵:字符是字母、数字、汉字图形、特殊符号这样的字符,计算机显示字符是用点阵的形式显示的,每一个字符都对应一个自己的点阵,所有字符的点阵数据都存放在字库中;

    6.2使用

    6.2.1使用一:赋值

    (1)字符直接量:形如‘A’或者’中’,变量中实际存储的是该字符的Unicode编码(无符号整数值),一个char型变量只能存储一个字符;

    注:空白字符:空白字符包括:空格、tab键、换行

    注:特殊字符:想表示回车、换行符时、单引号等?对于不方便输出的字符可以采用转义字符来表示;char c = '\'; System.out.println(c); //输出的结果为:

    (2)整型直接量:范围在0~65535之间的整数,变量中实际存储的即该整数值,但表示的是该整数值所对应的Unicode字符。

    (3)Unicode形式:形如‘u0041’,Unicode字符的16进制形式

    6.2.2使用二:运算

    对char类型字符运行时,实际上将他的Unicode转换为十进制做运算;

    运算类型:

    (1)字符和字符

    (2)字符和整数

    (3)整数和整数

    注:不能是字符和字符串,不然会报类型错误;字符串无法转换为字符;

    注:运算结果值需要在0~65535范围内

    6.2.3使用三:输出sysout

    (单个字符)          结果是单个字符

    (Unicode)            结果是单个字符

    (运算)                结果是int类型的整数;因为运算让short会转换为int类型;

    (运算后的变量)   结果是字符;

    三、基本类型间转换

    1、转换方式

    (1)自动类型转化(隐式类型转换):从小类型到大类型可以自动完成。

    Byte—short---int---long---float---double

    Char---int;

    应用:在一个表达式中出现了多种数据类型,则运算结果会自动的向较大的类型进行转化

    注意:int直接量可以直接赋值给byte、char和short,只要不超过其表示范围;

    (2)强制类型转换

    从大类型到小类型需要强制转换符

    语法:(需要转换成的类型)变量

    注:有可能会造成精度的损失或者溢出;为大类型的精度值大于小类型,取值范围大于小类型,所以,在使用强制转化时要求显式的告诉编译器,正在进行强制转换。

    四、Java数据类型在内存中的存储:面向对象的内存管理

     

    五、基本类型和引用类型作为参数传递:java基础里面的方法;

    向成为千里马奋斗,为伯乐打call;
  • 相关阅读:
    C++中使用多线程
    hdu 4223 dp 求连续子序列的和的绝对值最小值
    hdu 1372 bfs 计算起点到终点的距离
    hdu 4217 线段树 依次取第几个最小值,求其sum
    心得
    hdu 1175 bfs 按要求进行搜索,是否能到达,抵消两个(相同)棋子
    hdu 4221 greed 注意范围 工作延期,使整个工作时间罚时最少的单个罚时最长的值
    hdu 2844 多重背包 多种硬币,每一种硬币有一点数量,看他能组成多少种钱
    uva LCDDisplay
    hdu 4218 模拟 根据一个圆点和半径画一个圆 注意半径要求
  • 原文地址:https://www.cnblogs.com/mhy666/p/mhy_java_jichu_shuxing.html
Copyright © 2011-2022 走看看