1. 变量介绍

  • 变量是程序的基本组成单位

  • 概念

    • 变量相当于内存中一个数据存储空间的表示,可以通过变量名可以访问到变量(值)。
  • 变量使用

    • 声明变量 int a;

    • 赋值 a = 20;

      public class Var01 { 
      
      	//编写一个main方法
      public static void main(String[] args) { //声明变量
      int a;
      a = 100;
      System.out.println(a); //还可以这样使用
      int b = 800;
      System.out.println(b);
      }
      }

2. 变量快速入门

public class Var02 { 

	//编写一个main方法
public static void main(String[] args) {
//记录人的信息
int age = 30;
double score = 88.9;
char gender = '男';
String name = "king";
//输出信息, 快捷键
System.out.println("人的信息如下:");
System.out.println(name);
System.out.println(age);
System.out.println(score);
System.out.println(gender);
}
}

3. 变量使用注意事项

  • 变量表示内存中的一个存储区域,不同的变量,类型不同,占用的空间大小不同
  • 该区域有自己的名称(变量名)和类型(数据类型)
  • 变量必须先声明,后使用,即有顺序
  • 该区域的数据/值可以在同一类型范围内不断变化
  • 变量在同一个作用域内不能重名
  • 变量三要素:变量名、值、数据类型
public class VarDetail { 

	//编写一个main方法
public static void main(String[] args) {
//变量必须先声明,后使用, 即有顺序
int a = 50;//int
System.out.println(a);//50
//该区域的数据/值可以在同一类型范围内不断变化
//a = "jack"; //error
a = 88; //ok
System.out.println(a);//88 //变量在同一个作用域内不能重名
//int a = 77;//error
}
} class Dog {
public static void main(String[] args) {
int a = 666;//对
}
}

4. 程序中 “+” 的使用

  • 当左右两边都是数值型时,则做加法运算

  • 当左右两边有一方为字符串,则做拼接运算

  • 运算顺序,从左到右

    System.out.println(100 + 98);	//198
    System.out.println("100" + 98); //10098
    System.out.println(100 + 3 + "hello"); //103hello
    System.out.println("hello" + 100 + 3); //hello1003

5. 数据类型

  • 基本数据类型

    • 数值型

      • byte[1] short[2] int[4] long[8] float[4] double[8]
    • 字符型
      • char[2]
    • 布尔型
      • boolean[1]
  • 引用数据类型
    • 类(class)
    • 接口(interface)
    • 数组([])

6. 基本数据类型转换

  • 自动类型转换

    • char----->int----->long----->float----->double

    • byte----->short----->int----->long----->float----->double

      public class AutoConvert { 
      
      	//编写一个main方法
      public static void main(String[] args) {
      //演示自动转换
      int num = 'a';//ok char -> int
      double d1 = 80; //ok int -> double
      System.out.println(num);//97
      System.out.println(d1);//80.0 }
      }
      //自动类型转换细节
      public class AutoConvertDetail { //编写一个main方法
      public static void main(String[] args) {
      //细节1: 有多种类型的数据混合运算时,
      //系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
      int n1 = 10; //ok
      //float d1 = n1 + 1.1;//错误 n1 + 1.1 => 结果类型是 double
      //double d1 = n1 + 1.1;//对 n1 + 1.1 => 结果类型是 double
      float d1 = n1 + 1.1F;//对 n1 + 1.1 => 结果类型是 float //细节2: 当我们把精度(容量)大 的数据类型赋值给精度(容量)小 的数据类型时,
      //就会报错,反之就会进行自动类型转换。
      //
      //int n2 = 1.1;//错误 double -> int //细节3: (byte, short) 和 char之间不会相互自动转换
      //当把具体数赋给 byte 时,(1)先判断该数是否在byte范围内,如果是就可以
      byte b1 = 10; //对 , -128-127
      // int n2 = 1; //n2 是int
      // byte b2 = n2; //错误,原因: 如果是变量赋值,判断类型
      //
      // char c1 = b1; //错误, 原因 byte 不能自动转成 char
      //
      // //细节4: byte,short,char 他们三者可以计算,在计算时首先转换为int类型 byte b2 = 1;
      byte b3 = 2;
      short s1 = 1;
      //short s2 = b2 + s1;//错, b2 + s1 => int
      int s2 = b2 + s1;//对, b2 + s1 => int //byte b4 = b2 + b3; //错误: b2 + b3 => int
      // //boolean 不参与转换
      boolean pass = true;
      //int num100 = pass;// boolean 不参与类型的自动转换 //自动提升原则: 表达式结果的类型自动提升为 操作数中最大的类型
      //看一道题 byte b4 = 1;
      short s3 = 100;
      int num200 = 1;
      float num300 = 1.1F; double num500 = b4 + s3 + num200 + num300; //float -> double
      }
      }
  • 强制类型转换

    • 自动类型转换的逆过程, 将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 ( ),但可能造成精度降低或溢出,格外要注意。

      public class ForceConvert { 
      
      	//编写一个main方法
      public static void main(String[] args) { //演示强制类型转换
      int n1 = (int)1.9;
      System.out.println("n1=" + n1);//1, 造成精度损失 int n2 = 2000;
      byte b1 = (byte)n2;
      System.out.println("b1=" + b1);//造成 数据溢出
      }
      }
      public class ForceConvertDetail { 
      
      	//编写一个main方法
      public static void main(String[] args) { //演示强制类型转换
      //强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
      //int x = (int)10*3.5+6*1.5;//编译错误: double -> int
      int x = (int)(10*3.5+6*1.5);// (int)44.0 -> 44
      System.out.println(x);//44 char c1 = 100; //ok
      int m = 100; //ok
      //char c2 = m; //错误
      char c3 = (char)m; //ok
      System.out.println(c3);//100对应的字符, d字符
      }
      }

7. 基本数据类型和String类型的转换

public class StringToBasic { 

	//编写一个main方法
public static void main(String[] args) { //基本数据类型->String int n1 = 100;
float f1 = 1.1F;
double d1 = 4.5;
boolean b1 = true;
String s1 = n1 + "";
String s2 = f1 + "";
String s3 = d1 + "";
String s4 = b1 + "";
System.out.println(s1 + " " + s2 + " " + s3 + " " + s4); //String->对应的基本数据类型
String s5 = "123";
//会在OOP 讲对象和方法的时候回详细
//解读 使用 基本数据类型对应的包装类,的相应方法,得到基本数据类型
int num1 = Integer.parseInt(s5);
double num2 = Double.parseDouble(s5);
float num3 = Float.parseFloat(s5);
long num4 = Long.parseLong(s5);
byte num5 = Byte.parseByte(s5);
boolean b = Boolean.parseBoolean("true");
short num6 = Short.parseShort(s5); System.out.println("===================");
System.out.println(num1);//123
System.out.println(num2);//123.0
System.out.println(num3);//123.0
System.out.println(num4);//123
System.out.println(num5);//123
System.out.println(num6);//123
System.out.println(b);//true //怎么把字符串转成字符char -> 含义是指 把字符串的第一个字符得到
//解读 s5.charAt(0) 得到 s5字符串的第一个字符 '1'
System.out.println(s5.charAt(0));
}
}
注意事项
  • 在将 String 类型转成 基本数据类型时, ,比如 我们可以把 "123" , 转成一个整数,但是不能把 "hello" 转成一个整数

  • 如果格式不正确,就会 抛出异常,程序就会终止, 这个问题在异常处理章节中,会处理

    /**
    * 演示字符串转基本数据类型的细节
    */
    public class StringToBasicDetail { //编写一个main方法
    public static void main(String[] args) { String str = "hello";
    //转成int
    int n1 = Integer.parseInt(str);
    System.out.println(n1);
    }
    }

8. HomeWork

1.程序阅读,判断输出结果Homework01
public class Homework01 {
//编写一个main方法
public static void main(String[] args) { int n1;
n1 = 13;
int n2;
n2 = 17;
int n3;
n3 = n1 + n2;
System.out.println("n3 = " + n3);//30
int n4 = 38;
int n5 = n4 - n3;
System.out.println("n5 = " + n5);//8
}
}
2.程序编写 Homework02
public class Homework02 {
//编写一个main方法
public static void main(String[] args) {
//编程,保存两本书名,用+拼接,看效果。保存两个性别,
//用加号拼接,看效果。保存两本书价格,用加号拼接,看效果 String book1 = "天龙八部";
String book2 = "笑傲江湖";
System.out.println(book1 + book2);//天龙八部笑傲江湖 //性别应该使用char保存
char c1 = '男';
char c2 = '女';
System.out.println(c1 + c2);//得到 男 字符码值 + 女 字符码值 //保存两本书价格
double price1 = 123.56;
double price2 = 100.11;
System.out.println(price1 + price2);//就是 123.56+100.11
}
}
3.程序编写Homework03
public class Homework03 { 

	//编写一个main方法
public static void main(String[] args) {
/*
姓名 年龄 成绩 性别 爱好
xx xx xx xx xx 要求:
1) 用变量将姓名、年龄、成绩、性别、爱好存储
2) 使用+
3) 添加适当的注释
4) 添加转义字符, 使用一条语句输出 */
//姓名
String name = "jack";
int age = 20;
double score = 80.9;
char gender = '男';
String hobby = "打篮球";
//输出了信息, 可以使用换行
System.out.println("姓名\t年龄\t成绩\t性别\t爱好\n" + name + "\t"
+ age + "\t" + score + "\t" + gender + "\t" + hobby);
}
}

Java基础之第二章变量的更多相关文章

  1. Java 第二章 变量

    第二章 变量 变量称为:是计算机语言中能储存计算机结果或能表示值抽象概念 .变量可以通过变量名访问 int money ; //变量 money=1000; //赋值 int money=1000: ...

  2. Java 第二章 变量、数据类型和运算符

    第二章      变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...

  3. java基础(三章)

    java基础(三章) 一.基本if结构 1.流程图 l  输入输出 l  判断和分支 l  流程线 1.1              简单的if条件判断 if(表达式){            //表 ...

  4. java基础(二章)

    java基础(二章) 一,变量 1.变量是内存中的一个标识符号,用于存储数据 2.变量命名规则 l  必须以字母.下划线 _ .美元符号 $ 开头 l  变量中,可以包括数字 l  变量中,不能出现特 ...

  5. JAVA基础第五章-集合框架Map篇

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  6. JAVA基础第四章-集合框架Collection篇

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  7. Java基础-面向对象第二特征之继承(Inheritance)

    Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...

  8. C++ Primer 笔记(2)第二章 变量与基本类型

    第二章 变量与基本类型 1.基本内置类型包括算术类型和空类型,算术类型分为两类:整型(包括字符和布尔类型)和浮点型: 2.布尔类型(bool)的取值是真(true)或者假(false): 3.字面值常 ...

  9. java基础(一章)

    java基础(一章) 1.            java是一种面向对象的高级编程语言. 2.            java包括:              javase(java基础)       ...

随机推荐

  1. Django 视图(View)

    1. 视图简介 2. URLconf 1)关联各应用下的 URLconf 2)URLconf 的编写 3)namespace 反向解析 3. 视图函数&错误视图 4. HttpRequest ...

  2. 解决mysql You can't specify target table for update in FROM clause错误

    mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表( ...

  3. 记某次sql注入绕过ids

    昨天测试sql注入,发现个站,存在ids,一个单引号直接拦截,无论我怎么编码都不行,怕不是废了.. 灵机一动 基础探测 /*'*/ 报错 /*''*/ 返回正常 是字符串类型. 先本地测试 返回所有 ...

  4. 4-socket套接字编程

    socket套接字编程 目标:根据socket模块提供的接口函数,进行组合使用完成基于tcp或者udp的网络编程. 套接字:完成上述目标的一种编程手段,编程方案. 套接字分类: 流式套接字(sock_ ...

  5. Tomcat部署环境

    环境搭建:程序文件(开发人员),相关的软件(web服务器,应用服务器,数据服务器),硬件(服务器设备上),网络环境. 文档:部署文档说明书(操作系统,硬件配置,服务器软件及相关..) 下面举个列子,考 ...

  6. 服务器安装node全教程

    我的服务器centos,安装node时出了点小麻烦,在这里记述我的方法. 1.进入node下载网站https://nodejs.org/en/download/,这里右键复制下载链接 2.进入cent ...

  7. Iptables防火墙实验

    先说明一下环境,这里有四台主机,中间的Centos充当防火墙.右上角的win XP和右下角的Rhel7充当服务器,最左边的win7充当主机.四者之间的网卡都已经配置好.而且我们已经在Centos6.5 ...

  8. Windows PE第6章 栈与重定位表

    第六章 栈与重定位表 本章主要介绍栈和代码重定位.站和重定位表两者并没有必然的联系,但都和代码有关.栈描述的是代码运行过程中,操作系统为调度程序之间相互调用关系,或临时存放操作数而设置的一种数据结构. ...

  9. Win64 驱动内核编程-22.SHADOW SSDT HOOK(宋孖健)

    SHADOW SSDT HOOK HOOK 和 UNHOOK SHADOW SSDT 跟之前的 HOOK/UNHOOK SSDT 类似,区别是查找SSSDT的特征码,以及根据索引计算函数地址的公式,还 ...

  10. Intel汇编语言程序设计学习-第六章 条件处理-中

    6.3  条件跳转 6.3.1  条件结构 在IA-32指令集中没有高级的逻辑结构,但无论多么复杂的结构,都可以使用比较和跳转指令组合来实现.执行条件语句包括两个步骤:首先,使用CMP,AND,SUB ...