核心:对事物的某种规范

  前提:

1.JAVA:JAVA程序的运行是以堆栈的操作来完成的

 堆栈以帧为单位保存线程的状态。

      JVM对堆栈只进行两种操作:以帧为单位的压栈和出栈操作。

理解:

2.数据类型:描述内存的一种机制(对内存位置的一个抽象表达方式

 

 

内存抽象表现形式:

1.变量:计算机存储数据的容器

变量的要素:类型(数据类型决定了变量的大小)、名称、存数据

 

规范:

使用:

变量的使用:

步骤:声明、赋值、使用

    int   a;      a=1;

    类型  变量名    值

 

规则:

--变量要先赋值后使用

--变量名不能重复,不能以数字开头,不能出现非法字符

--变量名不能是关键字

--变量名中只能有_和$这两个特殊符号

--变量名中只能由_、$、字母、数字组成,不能以数字开头

--变量名是区分大小写的

--如果一个变量名是由两个单词组成的,那么第1个单词的第1个字母小写,第2个单词的第1个字母大写。

 

核心:变量是变化的

      变量确定了数据类型,确定内存的大小

2.数据类型:基本类型和引用数据类型。

描述:

基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。

引用数据类型:Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过类或接口进行构造,类提供了捆绑数据和方法的方式,同时可以针对程序外部进行信息隐藏。

·数据存储的特征:

基本类型的变量和对象的引用变量都是在函数的栈内存中分配

 

基本类型只能用来存数据, 不能用来操作判断数据

内存的开辟:在我们定义这个变量的时候。

释放:

当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间

特征:

存取速度比堆要快,仅次于寄存器,栈数据可以共享

存在栈中的数据大小与生存期必须是确定的,缺乏灵活性

 

引用类型:引用类型继承于Object类(也是引用类型)都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的;

内存在什么时候开辟:在new的时候 开辟

释放:

数组和对象在没有引用变量指向它的时候,才变为垃圾,不能在被使用,但仍 然占据内存空间不放,在随后的一个不确定的时间被垃圾回收器收走

特点:

动态地分配内存大小,生存期也不必事先告诉编译器

在运行时动态分配内存,存取速度较慢

类别:

 基本类型:布尔类型和数值类型

     数值类型:定点类型和浮点类型

 

 引用类型:类、接口、数组

 

 

 

 

概念:

定点:定点的意思是把小数点定在末尾,小数点后没有数字的数据,Java中通常把它们称为整数;

常量:就是直接的值;

变量:放置常量的容器,除了放置常量之外,也可以给变量一个运算式,变量中的值是可变的;

1)     基本类型:

>>定点类型:

byte(字节类型) 一个byte 8位,取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)默认是0

short(短整型) 一个short 16位,取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)默认是0

int(整型)一个int 32位,取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)默认是0

long(长整型)   一个long 64位,取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)默认是0L或0l推荐用大写;

 

描述:

我们希望它是byte型的,可以在数据 后加上大写的 B:35B,表示它是byte型的,同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型 的,就一定要在数据后面加“L”。

核心:数据类型确定的时候,数据的存储如果超出范围会编译出错

 

字符类型:char

Java中一个字符(char)表示Unicode字符集中的一个元素。Unicode字符由16位组成,因此,有(65535)个不同的字符可用,范围从’u0000’到’uFFFF’(u告诉编译器你在用两个字节[16位]字符信息表示一个Unicode字符)。用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容,字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加' ',比如 '1'表示字符'1'而不是数值1。

 

>>浮点类型:

float (单精度浮点型) 一个float 32位,占用4个字节, 例3.2F,默认是0.0f , 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)。
double (双精度浮点型) 一个dobule 64位  占用8个字节, 例3.2, 默认是0.0, 1.797693e+308~ 4.9000000e-324 占用8个字节 

注:double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的。

如果要表示一个数据是float型的,可以在数据后面加上“F”。

浮点型的数据是不能完全精确的,所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。

基本类型赋值时的特性:

1.当整数类型的数据使用字面量赋值的时候,默认值为int类型,就是直接使用0或者其他数字的时候,值的类型为int类型,

所以当使用    longa = 0这种赋值方式的时候,JVM内部存在数据转换。

2.浮点类型的数据使用字面量赋值的时候,默认值为double类型,就是当字面两出现的时候,JVM会使用double类型的数据类型。

3.从JDK 5.0开始,Java里面出现了自动拆箱解箱的操作,基于这点需要做一定的说明:

2)引用类型:new出来的

Random、Scanner、集合、数组、自己定义的类、String等

Student s     =   new Student();

引用       对象

数据交换特征:

交换的本质

    基本类型只在栈中开空间

    引用类型既要在栈中开空间也要在堆中开空间

·默认值:

1.变量没有默认值 int a; System.out.print(a) //报错

2.数组有默认值:int[] 0 double[] 0.0 char[] AscII为0的字符3.类中的

3.属性:有默认值int 0 double 0.0 String null 自定义的类型:null

 

>>类型转换:

类型转换:

--自动类型转换(将小数据放入到大空间中,自动转换)

--强制转换:目标类型 变量名=(目标类型)其他类型的变量

    int a=(int)5.0;

一、自动转换:

       1.基本类型:类型相似  ,小的往的大

          int a = 9;

          double b = a;

 

          String a ="123"

          int  b = (int)a;错误

      2.引用类型:继承关系  子类转父类

        子类:小的类型

        父类:大的类型

 

       Son son =new Son();

       Father f = son;

       总结:父类引用指向子类对象,父类引用

       只能调用自己的属性和方法,不能调用子类

       的属性和方法(子类的特征被隐藏了)   

 

    二、强制转换:   

           1.基本类型 :类型相似  大的往小的转

       double a = 9.9;

       int b = (int)a;  //b=9

       2.引用类型:继承关系  父类转子类

         Father f  =new Father();

         Son son = (Son)f;  

       3.怎么样判断父类引用中的真实对象?

       instanceof

       Father f = new Son();

       System.out.println(f instanceof

Son);//ture

       System.out.println(f instanceof

Son1);//false

 

数据算法:

1.  运算符:

算术运算符:

1)赋值运算符=:它的作用是将右边的值复制一份到左边的空间中

去。

2) -,*,/,%(整除取余)-,*,/:运算数据只能是数字类型

的。

3)           >>进行数字相加

       5+6==11   

       1.1+2.1==3.2

       3+1.5==4.5//一个穷人和一个富人的结果是富

       int t=5.5+1;//错误

       double c=5.5+2;//正确

 

      

       >>+:当与字符串相加时,起连接作用

       "abc"+1=="abc1"

       "12"+3+5=="123"+5=="1235"

       "12"+2*3=="12"+6=="126"  126

4)/:

       5/2==2(穷人与穷人的结果还是穷人)

       5.0/2==2.5(穷人与富人的结果是富人)

       double a=5/2;//2.0(小数据可以放入大空间

内)

       int b=5/2.0;//报错(大数据不能放入小空间

内)

5)%(取模,整除取余)

       5%2==1

       2.2%1==0.2

表达式:运算符与数据的组合就是一个表达式

       a+b;

       int a=5;

       a>b;

关系运算符:主要是用来进行比较大小,或相等

 >,>=,<,<=,==,!= 

比较后的结果是:真(true),假(false)

--boolean flag=true

 

逻辑运算符:&&   ||  !

 

优先级:

()    !    算术运算符   关系运算符  &&   ||    =

 

语法结构:顺序结构、条件结构、逻辑结构

条件结构:

1)  if(表达式){

    //代码

     }

    

    if(flag)

 

    }else{

 

    }

if-else if-...-else

嵌套条件结构:

特点:它既能做等值判断,又可以做区间判断

2)switch(变量){

    case 值1:

       代码块;

       break;

    case 值2:

       代码块

       break;

    case 值3:

       代码块;

       break;

    default:

       代码块;

       break;

 

}

 

循环结构:

要素: 循环变量初始化、条件判断、循环体内改变循环变量。

特征:重复着做相同或相似的事,并且有变化的地方一定要有规律

,否则不能使用循环。

 

一,while循环

    循环变量初始化

    while(条件判断){

       循环体;

       循环体内改变循环变量;

    }

 

二,do-while循环

    do{

       循环体;

       循环体内改变循环变量;

    }while(条件判断);

 

如果第条件满足时,while和do-while执行的结果是一样的

但如果条件不满足时,while一次都不会执行,而do-while至少会

执行一次

 

while和do-while适合做无限次数的循环

 

三,for循环

    for(循环变量初始化;条件判断;循环体内改变循环变

量){

       循环体;

    }

   

for适合做有限次数的循环

 

前提:在循环中

break中断循环

break一般都是和if一起来使用

 

continue关键字的使用

继续:中止本次循环体的执行,继续下一次循环

在使用时,一般都要和if结构一起使用。否则没有意义。

 

int b=a++;++放在后面,表示先使用a的值,a再加1

int d=++c;++放在前面,表示先将c+1,再将值赋给d

转义字符:

Java中的常用转义字符见表2-1

 

特点:只能做等值判断,它不能做区间判断

      探测类型:int char

\r   :回车

\n   :换行

\t   :TAB键

\t   \n的用法:只可以在双引号中出现

 

\t    主要作用对齐格式   tab   8字符宽度

Java: 数据类型的更多相关文章

  1. 回顾java基础—Java数据类型

    1  java数据类型.8种基本类型,3种引用类型 基本类型(也称:原始类型):byte.short.int.long.char.float.double.boolean 引用类型:类,接口,数组 2 ...

  2. JAVA数据类型,变量,转换,常量,运算符

    java数据类型: Java基本类型共有八种,基本类型可以分为三类: 1.字符类型char,用单引号赋值 2.布尔类型boolean 3.数值类型byte.short.int.long.float.d ...

  3. 多态、GC、Java数据类型

    多态 一.java中实现多态的机制是什么? 靠的是: 父类定义的引用变量可以指向子类的实例对象,或者接口定义的引用变量可以指向具体实现类的实例对象 而程序调用的方法,在运行期才动态绑定, 它就是引用变 ...

  4. java数据类型定义与输出

    JAVA数据类型分基本数据类型和引用数据类型. 一.基本数据类型 Java里面包含8个基本数据类型,分别是: boolean.byte.char.short.int.float.douboe.long ...

  5. java数据类型图:

    java数据类型图:                                 ┏数值型━┳━整数型:byte short int long               ┏基本数据类型━━┫   ...

  6. java数据类型学习

    java数据类型基本分为两类: 一类为基本数据类型: 数值类型: 整数类型:byte.short.int.long 浮点类型:float.double 字符类型:char 布尔类型:boolean 一 ...

  7. JAVA —— 数据类型

    引言:java 数据类型可分为两大类:基本数据类型和引用类型,其中基本数据类型又包括整形.浮点型.字符型和布尔型,而引用型变量与基本类型变量不同,它的值是指向内存空间的引用(地址),引用在其他语言中称 ...

  8. java.sql.Types,数据库字段类型,java数据类型的对应关系

    以下转自:http://kummy.itpub.net/post/17165/172850 本文在原文基础上有增减. 本概述是从<JDBCTM Database Access from Java ...

  9. java数据类型,hibernate数据类型,标准sql数据类型之间的对应表

    Hibernate API简介 其接口分为以下几类: l         提供访问数据库的操作的接口: l         用于配置Hibernate的接口: l         回调接口 l     ...

  10. Java数据类型(基本数据类型)学习

    Java数据类型(基本数据类型)学习 与其他语言一样,Java编程同样存在,比如int a,float b等.在学习变量之前我就必须先了解Java的数据类型啦. Java的数据类型包括基本数据类型和引 ...

随机推荐

  1. exsi主机之间使用scp拷贝文件超时问题

    exsi主机之间使用scp拷贝文件直接连接不上报错超时: 解决: 防火墙勾选ssh选项

  2. <<大学>>原文

    大学之道,在明明德,在亲民,在止于至善.知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得.物有本末,事有终始,知所先后,则近道矣. 古之欲明明德于天下者,先治其国,欲治其国者,先齐其家:欲 ...

  3. Linux防火墙iptables介绍

    介绍网络防火墙是通过一个或多个允许或拒绝的规则来过滤网络流量的网络设备或软件.网络防火墙还可以执行更复杂的任务,例如网络地址转换,带宽调整,提供加密隧道以及更多与网络流量相关的任务.而我们的任务就是需 ...

  4. TP5 belongsTo 和 hasOne的区别

    hasOne和belongsTo这两种方法都可以应用在一对一关联上,但是他们也是有区别的: belongsTo: 从属关系:就是谁为主的问题 A:{id,name,sex} B:{id,name.A_ ...

  5. Python内存分配器(如何产生一个对象的过程)

    目录 内存分配器 Python分配器分层 第零层--通用的基础分配器 第一层--低级内存分配器 内存结构 arena pool new arena usable_arenas和unused_arena ...

  6. asp.net.core网站重启后登陆无效问题(部署在IIS)

    一.问题 在使用asp.net.core时,把网站发布到IIS后,在后续更新中需要停止网站,然后重启网站,发现已经登陆的用户会退出登陆.过程如下 1.登陆代码(测试) [AllowAnonymous] ...

  7. Java基础学习总结(20)——基础语法

    一.标识符 二.关键字 三.JAVA基础数据类型 3.1. java常量 3.2. java变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后 ...

  8. traits的介绍

    traits基本利用了上一篇文章的思想,通过局部特化,来返回针对特定类型的信息. 可以自己实现traits,约定俗成了,返回特性信息. 也可以利用iterator的traits信息. iterator ...

  9. linux下u盘检測程序

           获得U盘的插入或者拔取得信息的传统方法是在内核级执行hotplug程序.相关參数通过环境变量传递过来,再由hotplug通知其它关注hotplug的应用程序,可是效率比較低.      ...

  10. FIFO的设计与仿真

    本设计参照齐威王大哥的设计,采用模块化的设计方法,每个模块简单易懂,并进行了每个模块的仿真.最后进行顶层设计,编写了测试激励在modisim上仿真正确, 下面给出代码和测试激励,附上一篇比较好的英文文 ...