一.JavaSE-基础语法(一)

一.数据类型

二.变量常量

三.流程控制语句

四.数组

一.数据类型

  

  java语言的数据类型包括两种,基本数据类型和引用数据类型。

(1).基本数据类型:变量名指向具体的数值。

(2).引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值。

1.基本数据类型

    (1)基本数据类型:整数类型(byte,short,int,long);浮点类型(float,double);字符型(char);布尔型(boolean)。

    (2)

    整型

     byte:

    • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
    • 最小值是 -128(-2^7);
    • 最大值是 127(2^7-1);
    • 默认值是 0;
    • byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
    • 例子:byte a = 100,byte b = -50。

  short:

    • short 数据类型是 16 位、有符号的以二进制补码表示的整数
    • 最小值是 -32768(-2^15);
    • 最大值是 32767(2^15 - 1);
    • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
    • 默认值是 0;
    • 例子:short s = 1000,short r = -20000。

  int:

    • int 数据类型是32位、有符号的以二进制补码表示的整数;
    • 最小值是 -2,147,483,648(-2^31);
    • 最大值是 2,147,483,647(2^31 - 1);
    • 一般地整型变量默认为 int 类型;
    • 默认值是 0 ;
    • 例子:int a = 100000, int b = -200000。

  long:

    • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
    • 最小值是 -9,223,372,036,854,775,808(-2^63);
    • 最大值是 9,223,372,036,854,775,807(2^63 -1);
    • 这种类型主要使用在需要比较大整数的系统上;
    • 默认值是 0L;
    • 例子: long a = 100000L,Long b = -200000L。
      "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

  浮点型

  float:

    • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
    • float 在储存大型浮点数组的时候可节省内存空间;
    • 默认值是 0.0f;
    • 浮点数不能用来表示精确的值,如货币;
    • 例子:float f1 = 234.5f。

  double:

    • double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
    • 浮点数的默认类型为double类型;
    • double类型同样不能表示精确的值,如货币;
    • 默认值是 0.0d;
    • 例子:double d1 = 123.4。

  布尔型

  boolean:

    • boolean数据类型表示一位的信息;
    • 只有两个取值:true 和 false;
    • 这种类型只作为一种标志来记录 true/false 情况;
    • 默认值是 false;
    • 例子:boolean one = true。

  字符型

  char:

    • char类型是一个单一的 16 位 Unicode 字符;
    • 最小值是 \u0000(即为0);
    • 最大值是 \uffff(即为65,535);
    • char 数据类型可以储存任何字符;
    • 例子:char letter = 'A';。
        

2.引用数据类型:

    引用数据类型:类(class),接口(interface),数组([])。引用数据类型的类都是Object类的子类。

3.内存分配 

 基本数据类型:在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。

 引用数据类型:在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

例如,有一个类Person,有属性name,age,带有参的构造方法,

Person p = new Person("zhangsan",20);

在内存中的具体创建过程是:

1.首先在栈内存中位其p分配一块空间;

2.在堆内存中为Person对象分配一块空间,并为其三个属性设初值"",0;

3.根据类Person中对属性的定义,为该对象的两个属性进行赋值操作;

4.调用构造方法,为两个属性赋值为"Tom",20;(注意这个时候p与Person对象之间还没有建立联系);

5.将Person对象在堆内存中的地址,赋值给栈中的p;通过引用(句柄)p可以找到堆中对象的具体信息。

 4.包装类

  1.基本数据类型与对应包装类

  

  2.其中需要注意int对应的是Integer,char对应的Character,其他6个都是基本类型首字母大写即可。

  3.基本数据类型对象包装类特点:用于在基本数据和字符串之间进行转换。

  (1)将字符串转成基本数据类型:

    parseXXX(String s);其中XXX表示基本类型,参数为可以转成基本类型的字符串,如果字符串无法转成基本类型,将会发生数字转换的问题 NumberFormatException

    

  (2)将基本数值转成字符串有3种方式: 

 基本类型直接与””相连接即可;34+""

 调用String的valueOf方法;String.valueOf(34) ;

 调用包装类中的toString方法;Integer.toString(34) ;

4.基本数据类型和包装类转换 

    (1)基本数据类型转包装类型

Integer i = new Integer(4);//使用构造函数函数

Integer ii = new Integer("4");//构造函数中可以传递一个数字字符串

Integer iii = Integer.valueOf(4);//使用包装类中的valueOf方法

Integer iiii = Integer.valueOf("4");//使用包装类中的valueOf方法

(2)包装类转基本数据类型

  int num = i.intValue();

  总结:(1)整数运算表达式的结果,类型按字节大的为基准,若最大的小于int,结果默认为int

    (2)long若数字超出int范围,值后面加符号L(大小写都可)

   (3)整数和小数运算,结果一律为double

    float类型定义,值后面加符号f(大小写都可)

   (4)包装和基本数据类型可以自动转换,可以当基本数据类型使用

    包装类相互之间不能转换

二.变量和常量

  1.变量

(1)含义:java中通过三个元素描述变量:变量类型、变量名及变量值。
(2)语法:变量类型 变量名 = 变量值;
      注:其中String类型变量具有不可变性,重新赋值后会生成新的String对象。
(3)变量的使用:
           a.变量需要先声明后使用
           b.变量使用时,可以声明变量的同时进行初始化,也可以先声明后使用。例:String str=”Hello”;或者String str;str=”Hello”;
           c:变量每次只能赋一个值,但可以修改多次;
           d.main方法中定义的变量必须先赋值,然后才能输出;
           e.变量名不建议使用中文,容易产生安全隐患。

  2.常量

(1)含义:一种特殊的变量,它的值被设定后,在程序运行中不允许改变。
(2)语法:final 常量名 = 值; 例: final PI =
3.14;
(3)作用:提高了代码的可维护性,避免了由于用户的不规范赋值导致程序出错的情况。  

三.流程控制语句

(1)分支结构:
      a:if条件语句:if(条件表达式){ 
执行语句;     }
      b:if...else语句:if(条件表达式){   执行语句;   }else{  执行语句;       }
      c:if...else
if...else语句:if(条件表达式){   执行语句;   }else if(条件表达式){ 执行语句;       }else{  执行语句;}
(2)switch分支
      switch(表达式){
         case 值1:执行语句;break;
         case 值2:执行语句;break;
          ……
         default:执行语句;break;(可以省略)
   }
      注意:switch的byte、short、char、int四种整数类型,枚举类型和String类型(从java7才允许),不能是boolean类型。
(3)循环语句
      a:while语句:while(条件表达式){ 循环语句;}
      b:do..while语句:do{ 循环语句 }while(条件表达式);
      c:for语句:for(初始化表达式;条件表达式;循环后表达式){
                     循环体;
               }
注:(1)do...while语句特点:无论条件是否满足,都会执行一次;
      (2)终止循环:
                 a:break必须使用在switch或循环语句中;
                      在switch或循环语句中,break单独使用时,下面不允许有代码语句;
                      默认情况下:break只能跳出语句所属的最近一层循环。
                 b:continue 是终止本次循环,继续下一次循环。
                 c:return 结束当前方法。

四.数组

   数据类型相同的一组数据.

  1.一维数组

    (1)语法格式:

      (1)int[ ] arr = {值1,值2,值3,..};

      (2)int[ ] arr1 = new int[ 4] ;推荐使用

      (3)int[ ] arr2 = new int[ ] {值1,值2,值3,...};

     (3)特点: 创建之后,长度固定,不能增减,序号从0开始. 

(3)初始化:为数组开辟内存空间,并为数组中的每个元素赋初始值。
         a:动态初始化:只给出长度,由系统给出初始化值。
               数据类型[ ] 数组名 = new 数据类型[数组长度];
         b:静态初始化:给出初始化值,由系统觉得长度。
                数据类型[ ] 数组名 = {值1,值2,值3}。
              或者 数据类型[ ] 数组名 = new 数据类型[
] {值1,值2,值3}
(4)数组元素默认值:
     byte,short,int,long:默认值0
     float,double:默认值0.0
     char:默认值’\u0000’
     boolean:默认值false
     引用类型:默认值null

二维数组
     (1)含义:元素为一维数组的数组。
     (2)定义:a:数据类型[ ] [ ] 数组名;
                        b:数据类型 数组名[ ] [ ]
                        c:数据类型[ ] 数组名[ ]
     (3)初始化:
a:动态初始化:数据类型[ ][ ] 数组名=new 数据类型[m][n];
m:表示多少个一维数组;
n:表示一维数组的元素个数;
b:静态初始化:
数据类型[ ][ ] 数组名={{元素..},{元素..}}

五.运算符

(1)算数运算符:+、-、*、/、%、++、--
(2)关系运算符:==、!=、>、>=、<、<=
(3)逻辑运算符:&&、||、!、^,&、|
(4)位运算符:&、|、~、^、>>、<<

JavaSE-基础语法(一)--数据类型及包装类的更多相关文章

  1. JavaSE基础之double数据类型的格式化

    JavaSE基础之double数据类型的格式化 1.double 数据类型的格式化工具类:DoubleFormatUtil.java package cn.com.zfc.util; import j ...

  2. 02JavaScript基础语法及数据类型

    JavaScript基础语法及数据类型 2.1数据类型 2.1.1字符串(String) 用单引号或双引号括起来的零个或多个单一的字符所组成. 2.1.2数值(Number) 包含整数或浮点数. 2. ...

  3. 二.Python基础语法和数据类型

    Python第二节 基础语法和数据类型 Python编码 python3默认情况下源码文件以UTF-8编码, 字符串均为unicode字符串.同时也可以通过# -*- coding: cp-1252 ...

  4. Python基础语法和数据类型最全总结

    摘要:总结了Python最全基础语法和数据类型总结,一文带你学会Python. 本文分享自华为云社区<Python最全基础语法和数据类型总结>,原文作者:北山啦 . 人生苦短,我用Pyth ...

  5. day 50 js-part1基础语法,数据类型及用法,流程控制语句,循环

    js基本概念: JavaScript 是世界上最流行的脚本语言. JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. JavaScript ...

  6. Python3基础语法和数据类型

    Python3基础语法 编码 默认情况下,Python3源文件以UTF-8编码,所有字符串都是unicode字符串.当然你也可以为原码文件制定不同的编码: # -*- coding: 编码 -*- 标 ...

  7. javase基础笔记2——数据类型和面向对象

    API:Application program interface  程序调用一个方法去实现一个功能 正则表达式:regex 用来匹配的 javaEE里边有三大框架 SSH struts spring ...

  8. php基础语法(数据类型、运算符)

    数据类型 标量类型: int, float, string, bool 复合类型: array, object 特殊类型: null, resouce 整数类型int, integer 字符串类型st ...

  9. JavaSE基础语法学习-方法&数组

    方法 Java方法是语句的集合,它们在一起执行一个功能. 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 设计方法的原则:方法的本意是功能块,就是实现某 ...

随机推荐

  1. 巧用 Jersey RESTful WebService框架解决文件上传乱码

    一.当我们使用jersey框架封装的restful进行文件上传时,会出现中文乱码,试用了过滤器设置编码都不管用.仔细想了很久解决办法,就用一个servelt来代替这个上传的restful接口实现上传的 ...

  2. line number is important in Exceptions.

    行号作为debug信息 在出现异常时可以迅速定位 package ztest; public class Test { public static void main(String[] args) { ...

  3. Vuejs——(8)Vuejs组件的定义

    版权声明:出处http://blog.csdn.net/qq20004604   目录(?)[+]   本篇资料来于官方文档: http://cn.vuejs.org/guide/components ...

  4. springMVC一个Controller处理所有用户请求的并发问题(转)

    springMVC一个Controller处理所有用户请求的并发问题 有状态和无状态的对象基本概念: 有状态对象(Stateful Bean),就是有实例变量的对象 ,可以保存数据,是非线程安全的.一 ...

  5. volatile和synchronized

    volatile是变量修饰符,而synchronized则作用于一段代码或方法:看如下三句get代码: int i1;              int geti1() {return i1;} vo ...

  6. Turtle库学习笔记

    一.Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它 ...

  7. 前后端分离开发之前端自己的API(DB)---- (1)

    Creating demo APIs for Front-End Developer 心理准备 Tool-1 开发工具/编辑器:Visual Studio Code , 即 VSCode官网: htt ...

  8. asp.net mvc 安全测试漏洞 "跨站点请求伪造" 问题解决

    IBM Security Appscan漏洞筛查-跨站请求伪造,该漏洞的产生,有多种情况: 1.WebApi的跨站请求伪造,需要对WebApi的请求头部做限制(此文不做详细介绍): 2.MVC Act ...

  9. docker配置仓储库时出错:无法安全地用该源进行更新,所以默认禁用该源

    在Ubuntu上安装docker,配置仓储库时第一次使用了阿里去的镜像,如下 sudo add-apt-repository "deb [arch=amd64] http://mirrors ...

  10. vue.js多页面开发环境搭建

    利用 vue-cli 搭建的项目大都是单页面应用项目,对于简单的项目,单页面就能满足要求.但对于有多个子项目的应用,如果创建多个单页面,显示有点重复,特别是 node_modules 会有多份相同的. ...