新的JAVA基础第一天---数据类型等

内容

java基础知识, java流程控制语句, 常用包和类 ,数组操作, 面向对象的概念 ,异常处理 ,文件访问iO流, 数据集合操作, 集合框架
jDBC访问数据库

目标掌握基础

  1. java语言简介
  2. JDK安装和配置 ok
  3. java运行原理 ok
  4. Hello World案例
  5. java的数据类型、变量、运算符、注释
  6. 控制台的输入输出

一、简介

1.1java

Java语言是美国Sun公司(stanford University Network),在1995年推出的高级编程语言。所谓编程语言是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。

1996年1月,Sun公司发布了Java的第一个开发工具包*(JDK 1.0)*,这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具。

詹姆斯·高斯林 (James Gosling)是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为“Java之父”。

javaB 爪哇岛

1.2java版本

版本 名称 发行日期
JDK 1.0 Oak(橡树) 1996-01-23
JDK 1.1 none(无) 1997-02-19
JDK 1.1.4 Sparkler(宝石) 1997-09-12
JDK 1.1.5 Pumpkin(南瓜) 1997-12-13
JDK 1.1.6 Abigail(阿比盖尔–女子名) 1998-04-24
JDK 1.1.7 Brutus(布鲁图–古罗马政治家和将军) 1998-09-28
JDK 1.1.8 Chelsea(切尔西–城市名) 1999-04-08
J2SE 1.2 Playground(运动场) 1998-12-04
J2SE 1.2.1 none(无) 1999-03-30
J2SE 1.2.2 Cricket(蟋蟀) 1999-07-08
J2SE 1.3 Kestrel(美洲红隼) 2000-05-08
J2SE 1.3.1 Ladybird(瓢虫) 2001-05-17
J2SE 1.4.0 Merlin(灰背隼) 2002-02-13
J2SE 1.4.1 grasshopper(蚱蜢) 2002-09-16
J2SE 1.4.2 Mantis(螳螂) 2003-06-26
Java SE 5.0 (1.5.0) Tiger(老虎) 2004-09-30
Java SE 6.0 (1.6.0) Mustang(野马) 2006-04
Java SE 7.0 (1.7.0) Dolphin(海豚) 2011-07-28
Java SE 8.0 (1.8.0) Spider(蜘蛛) 2014-03-18
Java SE 9.0 none(无) 2017-09-21
Java SE 10.0 none(无) 2018-03-21
Java SE 11.0 none(无) 2018-9-25

老历史不全

jdk 13、16、

JDK(java开发工具箱,做java开发必须安装,这是一个根本的一个环境)
JDK不是集成开发环境。
JDK这个开发工具箱中是java张核心的库。

		98年的·时候:java升级到JDK1.2,java被分为三大块。
		J2se:标准版(基础,必须学习)
		J2ee:企业版(专门为企业提供的解决方案。例如OA办公系统)
		J2Me:微型板(专门为微型设备做嵌入式系统开发)

java诞生十周年改名字了。
javase
javaee
javame

1.3、java的特点

​	Java是一门[面向对象](https://baike.baidu.com/item/面向对象)编程语言,不仅吸收了[C++](https://baike.baidu.com/item/C%2B%2B)语言的各种优点,还摒弃了C++里难以理解的[多继承](https://baike.baidu.com/item/多继承)、[指针](https://baike.baidu.com/item/指针/2878304)等概念,因此Java语言具有功能强大和简单易用两个特征。极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

Java具有简单性、面向对象、分布式、健壮性、安全性、跨平台与可移植性、多线程、动态性等特点。
单核心 单线程 多核心 多线程。(微秒级)
多线程:保证软件的运行
单线程:现在几乎没有了

java的编程思维很重要

c语言健壮性最高

跨平台高
windows.mac.linus,unix, .apk .ipa
面向过程
自己做 过程 自己做一件事的过程 需要什么东西自己做出来什么东西

面向对象
我让你做一件事情 ,我不想要做 我只需要让你做
特征、 必须会背

面向对象三大特征 :封装,继承,多态

java面向对象: 封装,继承,多态,抽象,接口

后面学习:
面向接口
面向切面

1.4、开发方向

java体系技术划分:

javase;标准版
java Standard Edition pc方向 桌面应用
javaee;企业版
java Enterprise Edition 可扩展的企业级应用java平台 服务器项目 网页
学习javaWEB(Servlet jsp)
javame:微型版
java Micro Edition 用于嵌入java平台 移动 设备应用

确认自己学什么

1.5、能做什么

java语言可以编写桌面应用程序(类似于电脑QQ,但是java不擅长)、Web应用程序(服务器程序)、分布式系统和嵌入式系统应用程序等。人工智能。python(黄金语言) 。

主要应用在web程序的开发领域,常见的互联网应用比如天猫,京东,物流系统,网银系统等,以及服务器后台处理大数据的存储,查询,数据挖掘等也有很多应用。

二、java开发环境

2.1、jvm虚拟机

  • JVM 是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

    (模拟器 安卓模拟器 夜神) .exe .apk .ipa

  • 跨平台 任何软件的运行都需要运行在操作系统上,而我们使用Java编写的软件可以运行在任何的操作系统上,这个特性成为java语言的跨平台性。这个特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。

    Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

    Windows OS MacOS Linux OS

    不同的操作系统,内部的运行原理是不一样,换句话说,windows的软件不能在mac电脑上面进行安装。所以我们很多软件的制作成本就加大了。例如 爱奇艺,需要制作windows版 还需要制作mac版。此时就需要两个开发团队。假如你是老板,急需一种操作:能不能开发一个版本在不同的平台中都能运行,这就是跨平台。

    Java是支持跨平台操作的一门语言。

2.2、jre

Java运行环境(Java Runtime Environment,简称JRE)是一个软件,由SUN微系统所研发,JRE可以让计算机系统运行Java应用程序(Java Application)。JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类别函数库(Class Library)。

2.3、jdk

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。(电工的工具包钳子,螺丝刀,欧姆表。。。 )jdk中自带有jre。

慢慢学不要着急

2.3、jdk安装

  1. 以后任何安装路径都不要有中文路径
  2. 以后我们的软件统一装到某个盘的某个文件夹中 E:\app
  3. 我们安装完成之后 又弹出一个框 这是提示我们安装jre,Jdk安装完成之后 已经有jre了 所以 这个地方取消安装
  4. 安装完成jdk之后 在jdk文件夹中 Bin 这里面是java的执行文件 Include 这里面导入c和c++的一些代码 Jre java的运行环境 Lib 资源库
  5. 配置jdk的环境变量(可以理解成告诉你的电脑 我们安装了jdk 我们要开发java 并且 jdk安装到哪了)
    安装
    自己百度

JAVA_HOME
指向jdk的安装目录,Eclipse/idea/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。
JAVA_HOME 自己jdk安装路径

CLASS_PATH
(可以不用配置 jdk1.5就不用配置了,会自动找。) 作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。 需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。 新版的软件,classpath没有什么用了,因为在安装的时候已经选了JDK而且可以添加 CLASS_PATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

Path

​ 作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。
需要把jdk安装目录下的bin目录增加到现有的PATH 变量中,bin目录中包含经可执行文件javac/java/javadoc等待,

设置PATH变量后,就可以在任何目录下执行javac/java等工具了。

bin目录 是公认的可执行文件 放置的目录。

Path
%JAVA_HOME%\bin

三、入门 HelloWorld

3.1、程序开发过程

开发环境搭建完成后,可以开始开发我们的第一个java程序了。

javac.exe :编译器 javac 编译命令

java.exe :解释器 java 运行命令

Java程序开发三步走:编写,编译,运行

解释性:脚本

编译型:

XXX.java–编译–>XXX.class

3.2、编写代码

1.新建一个文本文档文件,其中编写以下代码
新的JAVA基础第一天---数据类型等_第1张图片

public class HelloWorld{
	public static void main(String[] args){
		System.out.println("Hello World java!!!");
	}
}

类名要跟文件名完全一致。要遵循大驼峰命名。规定

定义类的格式: public class 类名{}

面试题一个XXX.java文件中可以有多个类吗
答:可以,但是只能有一个公共的类(使用public 修饰的类)
有多少个类就会生成几个class类

1、注意:类名要跟文件名一致,开头字母使用大写,遵循驼峰命名法。
2、min方法是一个程序的入口,一个类可以没有main方法,如果没有main方法
3.main方法的写法是固定的:public static void main : 不能乱写
4、System.out.print:向控制台输出:ln换行
5、严格区分大小写
6、“”引起来的就是字符串
7、但是只能由一个public class
8、如果java源文件发送更改,字节码需要重新编译 字节码才会生效 如果更改程序 服务器一定要重启
9、java结束必须写;号

3.3编译器

先练习创建项目10遍

打开百度–》搜索idea用法—》整体浏览
注意
包就是文件夹。类比,css,js,img。
不同模块的代码可能有相同的名字。使用包来分割/存储不同的功能的代码。

包的命名规范:

特点:全小写,点分隔,反域名。

www.taobao.com

com开头:公司项目 com.aaa.chaoshi.util

org开头:公益项目

java开头:java中的类包

扩展:自己去百度–》包的命名规范

3.4、java注释

文档注释写在类的上边 /** */

多行注释,写在方法上边 /* */

单行注释方法里边。 //

3.5、关键字
是指在java中有特殊含义的,被保留的,不能随意使用的字符

特点:会识别 全小写 有颜色

3.6标识符

概念:在程序中我们自己定义名字的内容。

比如类的名字、方法的名字和变量的名字等,都是标识符

必须的要求

  1. 构成:字母、数字、下划线 、$符号
  2. 首个只能是:字母 、下划线 、$符号,不能以数字开头还不能以空格
    3严格区分大小写
  3. 不能使用关键字

软性 就是规范不属于语法 不会报错

  • 类名规范: 首字母大写,后边每个单词的首字母大写(大驼峰)
  • 变量名规范:首字母小写,后边每个单词的首字母大写(小驼峰)
  • 方法名规范:同变量名
  • 常量命: 全部大写
  • 见名知意

3.7、字面值:
字表明的值 能看出来 的 字面值就是数据 是java源程序组成部分之一
数据在现实世界是有分类的 所有在java里面也有数据类型
-100、10、4
-3.14
-“abc”

	注意 
	java所有字符串“”  双引号
	java所有字符‘’  单引号

四、常量

常量:是指在java程序运行期间固定不变的数据
本身数值大小‘不是‘常量’的内涵
常量

4.1概述

常量命名 全大写+下划线字母命名

   final double J_A=0127.12200416;
        int zhang=11;
        double lxl=165.5;
        char ai='爱';
        char ni='你';
        System.out.println((zhang*lxl)+""+ai+""+ni+","+J_A);

4.2、分类

类型 含义 数据类型
整数常量 所有的整数 0,1,567,-9
浮点数常量 所有的小数 0.0,-0.1,3.55
字符常量 单引号引起来,只能写一个字符,必须有内容 ‘a’ , ’ ’ , ‘好’
字符串常量 双引号引起来,可以写多个字符,也可以不写 “A”, “Hello” , “你好” ,""
布尔常量 只有两个值,流程控制语句中使用 true, false
空常量 只有一个值(引用数据类型讲解)没有任何数据 null

常量命名:全大写+下划线字母命名

4.3、final修饰符(关键字)。

(翻译:adj. 最终的;决定性的;不可更改的n. 决赛;期末考试;当日报纸的末版)
1)、final修饰的类不能有子类
2)、final修饰的方法不能被子类重写
3)、final修饰的变量包括(成员变量,局部变量)都是常量,常量不可以修改(常量赋值后不能修改)

   final int anInt;//final 在修饰成员变量的时候必须赋值,不赋值就直接报错  局部变量可以不付初始值 不会报错
   
    public static void main(String[] args) {
        final int i;
        public static final int b;//此变量会用这种方式声明的变量将会成为全局变量
        }

练习 : 打出所有类型

五、变量和各种数据类型

1.概述:程序中可以改变的量称为变量,内存中最小的存储单元

​为什么用变量?间接的思想,间接的越多,证明程序越优秀!

为了程序方便,为了更好的的满足需求
来源于数学的变量
​数学中可以使用字母代替数字的方式运算,例如x=1+5或者6=x+5;程序中也是一样是的,相当于一个容器,内部可以存储数据。
Java中要求一个变量每次只能保存一个数据,必须明确保存的数据类型。

5.1、什么是变量

在内存中开辟一个值 存储一个值 这个值的名字是变量名 变量必须定义类型

数据类型 名称 字面值

在不同的作用域里 变量可以重名

方便其他地方调用这个变量
弱变量
变量名无法决定数据类型
java :
强变量: 变量声明的时候就必须给一个数据类型
赋值也必须在这个变量的范围内赋值(数据类型的范围规定)
定义格式
数据类型 变量名
变量名=值

int a;
a=10;

数据类型 变量名 =值

int b=20;

public class Demo02 {

    public static void main(String[] args) {
        //年龄
        int a; //定义一个int类型的变量   
        a = 10;//给age赋值在内存中开辟一块内存空间  起名为age  并且这块内存空间中只能存储int类型的数据
        //int a,b,c;//同时定义多个变量
        int b=10,c=8,d=9; //定义变量的同时,初始化
        System.out.println(a);
    }
}

访问变量的两种形式
1、读取变量保存的具体数据格式 get/获取
2、修改变量中保存的具体格式 set/修改

分类:
局部变量
-----------在方法体中声明的变量叫局部变量
成员变量
----------在方法体外 类体之内声明的变量加成员变量

成员变量没有手动赋值的时候系统会自动赋值
类体中 不能直接编写java语句 (声明除外)

public class variate {
    int a=45;//成员变量
    
   //	System.out.println(i);//类体中 不能直接编写java语句  (声明除外)
        //主方法
    public static void main(String[] args) {
    
        int  a=46;//局部变量
        System.out.println(a);//46   java遵循“就近原则”
    }
}

5.2、什么是数据类型

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

基本数据类型
声明:数据类型 变量名 = 初始值
基本数据类型:四类八种
整形 整数 byte short int long
浮点型 小数 float double
字符型 一个字符 char
布尔型 boolean

引用数据类型: 相对于引用“地址”
字符串 string 数组 函数 对象 Enum权举都是引用数据类型
最主要的区别就是在内存的开辟不一样,
还有明的方式不一样。
首字母大写都是引用类型
整数类型
整数类的变量用了存储整数数值,即没有小数部份的值
整数类型分为四中不同的类型
字节型(btye),短整形(short),整形(int),默认,长增形(long)

int 默认类型
byte 一个8位二进制数 01011010
反编译

为什么java中要整四个类型表示整数**?**

因为不同的类型 所占的内存大小不一样,那么存储的范围也就不一样。 java的数据类型细化就是为了找到更适合的空间来存储内容
如果想用long必须在数据后面加一个L后缀
一个字节是 就是一个8位二进制 8位二进制最大是255 11111111

关于java中的数字类型,数字都有正负之分, 所有在数字的二进制当中有一个二进制位被称为“符号位”。
并且这个“符合位”在所有二进制位的最左边,0表示正数,1表示负数。

byte类型的最大值:01111111

整形:
新的JAVA基础第一天---数据类型等_第2张图片
1、整数类型默认 int类型处理 要让这个整数当做long类型来处理 需要在整数后面加L或者l,建议使用大写的L。

2、 java语言当中的整数型字面值有三种方式:
第一种:十进制{是一种默认的方式}
第二种:八进制{以0开头的}
第三种:十六进制{以0x开头的}

数的定义不能超过他的数据类型的范围 也就是在内存中开辟的空间

int  int1=111111111;
       //long long1=11111111111111111;int超长了 long也输入不进去
        //直接书写的数值是:整形常量()默认int的
       long long1=11111111111111111L;//加一个L带表他是长整形
  public static void main(String[] args) {
        int a=10;
        int b=010;//以0开头是八进制
        int c=0x10;//以0x开头的是16进制
        //如果计算输出是默认以10进制的
        System.out.println(a);//10
        System.out.println(b);//8
        System.out.println(c);//16

        //456是int类型的数据有4个字节
        //x变量声明的时候是long类型 占用8个字节
        /*456赋值给x的时候有类型转换
        int类型转换成long类型
        int小 long大  可以自动转换
        *
        * */
        long x=456;
        long y=2147483647;
        System.out.println(y);

        //long z=2147483648;//过大整数 错误  超出int类型了
        long z=2147483648l;//定义数字为long类型数字
        System.out.println(z);
        System.out.println("==========================");


        byte h=50;
        //byte给来特权  应该报错 但是没有报错
        //在java语言当中,一个整数面值没有超出byte类型取值范围的话,该面值可以直接赋值给byte变量
        byte h1=127;

        //byte h2=128; 报错

        /*计算机二进制有三种形式
        * 原码
        * 反码
        * 补码
        * 计算机在任何情况下低层表示和存储数据的时候采用啦补码形式
        * 正数的补码:和原码相同
        * 负数的补码: 负数的绝对值对应的二进制吗所有的二进制取反,在加一
        *
        * 补码:100000000
        * 原码计算过程
        *       1000000000 -1 ---》0111111111
        * 100000000----》128
        * -128
        * */
      byte m=(byte)198;
        System.out.println(m);//-58

        short s1=32767;//通过
        //short s2=32768;//不通过

        char cc=65535;
        //cc=65535;报错
        //当一个整数字面值没有超过byte,short,char的取值范围,这个字面值可以直接放在给byte,short,char类型的变量
        //sun 公司为了方便程序员的编程 只要不超过数据类型的范围   其实变量还是转换了不过是程序自动转换了
    }

浮点型

浮点类型分为两种:单精度浮点(float)、双精度浮点(double)
double型所表示的浮点数比float型更精确;浮点数的默认类型为double类型。
小数默认double 如果非要用float 必须加上 F 的后缀

注意 :
double和float在计算机内部二进制存储的时候存储的都是近似值。
因为在计算机中无法存储无限循环小数 只能存储近似值


    double doble1=1.1;
        //浮点型是double 的类型  double 占8个字节  float占4个字节
        float float1=1.1f; //f代表他是一个浮点型常量值

在这里插入图片描述
double的精度太低相对来说,还不太适合做财务软件,
钱的问题要求精度特别高 sun公司定义了一个精度更高的引用数据类型 java.math.bigDecimal

其实

字符类型
新的JAVA基础第一天---数据类型等_第3张图片
是单个字符存储一个单一字节 java中用char表示
每一个char类型的字符变量都会占用两个字节 16位
char赋值的时候 必须用单引号吧字符括起来‘a’
char类型的变量赋值范围是0~65535内的整数
char a = ‘中’;

面试题:char类型能存储汉字吗?

​ 能,因为一个汉字是两个字节

任何字符在内存中都是以数字的形式存储的。
新的JAVA基础第一天---数据类型等_第4张图片
反斜杠在java语言中具有转义给功能
可以 char a=‘\n’; 把a赋值成了换行符;
可以将 字符含义赋值给变量

   public static void main(String[] args) {
        ///斜杆具有转义功能  可以吧下一个的字符转换成普通字符 或者有特殊功能的字符
        //转义字符在特殊符号之前会吧特殊符号变成普通字符
        char a='\n';
        System.out.print("A");
        System.out.print(a);//a变成了换行
        System.out.println("B");

        char b='\t';//制表符

        System.out.print("A");
        System.out.print(b);
        System.out.println("B");

        System.out.println("\"");// "
        System.out.println("\\");//  \

        //char n='4e2d'; 错误
        char n='\u4e2d';// 中对应unicode编码中的4e2d
      /* 斜杆u代表后面的数字是unicode是编码*/
        System.out.println(n);


        char c='\u0000';//这是 char的默认值
        System.out.println(c);
    }

注意
1.字符串是引用数据类型

​2.浮点型可能只是一个近似值,并非精确的值

​3.数据范围与字节数不一定相关,
例如float 数据范围比long更加广泛,但是float是4字节,long是8字节
​4.浮点数默认double类型,如果一定要使用float类型,需要加上一个后缀 F。

如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L表示long类型。

​ 后缀推荐使用大写字母。
Boolean
布尔类型变量用来存储布尔值,在Java中用boolean表示,boolean类型的变量只有两个值,即true和false,默认值为false。每个boolean占8位。

在底层中boolean类型占用一个字节 true存储1 false存储0;

Boolean 在实际开发中特别重要

		boolean flag =true;
        System.out.print("flag="+flag);

变量的注意事项

1、创建多个变量 变量名不可以重复。

2、float和long类型,字母后缀的F和L不能丢掉。

3、变量的值不能超过数据类型的范围

4.不赋值的变量不能使用 没有null这个变量

5.变量不能超过自己的作用域
作用域:从定变量的一行开始一直到所属的大括号结束为止》
6、一个语句可以创建多个变量 但是不建议这样用

7、强类型 弱类型
js: var/let 变量名–undefuned
变量名=变量值;
弱类型:数据变量名决定不了数据类型,
java:
强变量:变量声明的时候我一定制定了数据类型
赋值只能在这个范围内赋值
数据类型 变量名

8、计算机在任何时候,情况下都只能识别二进制
现代的计算机底层采用交流电的方式,接通和断开就两种状态 ,计算机只识别1和0

9、字节 (byte)

	1 byte = 8 bit   一个字节等于8个比特
	1 kb = 1024byte
	1 mb = 1024kb
	1 GB= 1024 MB
	1 TB = 1024 GB
	1 TB = 1024*1024*1024*1024*8

计算机最初只支持英文 ,最先出现的字符编码是ASCII编码 采用一个字节 编码 一个字节表示 一个八位二 进制 11111111 255

‘a’ ----》97
'A' ----->65
'0' ------>48 

unicode 编码 一个支持所有文字的编码

unicode有很多实现方式
utf-8
UTF-16
UTF-32
java语言采用unicode编码方式 可以支持中文
现在主要用UTF-8

10、八种数据类型默认值一切向0看齐

除Boolean都可以互相转换
任何浮动练习不管占用多少个字节,都比整数容量大 char 和 short 表示的种类相同 但是char可以取更大的正整数
一个整数字面值没有超过byte,short,char的取值范围,这个字面值可以直接放在给byte,short,char类型的变量
byte,short,char,混合运算的时候 都先转换成int类型在做运算

多种数据类型混合运算 ,先转换成最大的数据类型

六、运算符

算术运算符:+(字符串拼接运算) - * / % ++ – ;

++  --    一元运算符
	​	1.如果直接使用,前置++跟后置++没有区别

​ 2.如果用于 赋值 js中那一套。

  int a=1;
       a=a++;
        System.out.println("a="+a);
       a=++a;
       System.out.println("a="+a);
       a=a--;
       System.out.println("a="+a);
       a=--a;
       System.out.println("a="+a);

关系(比较)运算符:>= <= > < !=;

==:
.如果是基本数据类型比较值。
如果是引用数据类型 比较的内存的地址值!
他的结果一定是一个boolean值,true/false,如果是连续判断不能连着写。

1、 如果是基本数据类型比较值。
2、 如果是引用数据类型 比较的内存的地址值!
结果一定是一个boolean值,true/false,如果是连续判断不能连着写。

逻辑运算符:只能使用boolean值,条件可以连续写

​ &&(并且) 所有条件全都满足才是true,否则false 真真为真 一假为假

​ ||(或者) 至少有一个是true就是true否则false 一真为真 全假为假

​ ! (取反) 直接相反的结果 真义假 假义真

赋值运算符:=, += , -=, *= ,%= ,/= **复合赋值运算符会隐含强制类型转换

例如
 int a=10;
a+=100;
System.out.println(a);//110     a=a+100;
int b=10;
b-=100;
System.out.println(b);//-90   a=a-100

条件运算符:? : 三目表达式

格式:数据类型 变量名称 = 条件判断 ?表达式A : 表达式B;

​ *(表达式A和表达式B 要同时符合左侧的数据类型)
​ 流程:首先判断条件是否成立
​ 如果成立 表达式A
​ 如果不成立 表达式B
​ 一元,二元,三元 元就代表需要一个数据

int a=10;
int b=11;
int c=a

优先级

() ++ ,-- 》 算术运算符 --》关系运算符–》逻辑运算符–》赋值运算符–》条件运算符

++ 是条件运算符

七、数据类型转换

Java中要求参与计算的数据,必须保证数据类型的一致性,如果数据类型不一致将发生类型的转换。

隐式转换 就是自动转换

特点:自动完成,不需特殊处理
规则:范围从小–>大

 byte a=11;
        int b=a;
        System.out.println(b);//自动转换

显式转换(强制)

特点:需要数据处理,不能自动进行
规则:小范围 变量名 = (范围小的类型)范围大的数据

int c=111;
        float d=(float) c;
        System.out.println(d);
        //强制转换数据类型 /注意:强制类型转换有可能会造成  精度丢失 和 数据溢出      // 小数据类型  变量  =  (左边的小数据类型) 大类型的值。
//精度丢失
    double d1 = 3.141592657678686876;
    float d2 = (float) d1;//floatd的取值范围只有6~7位数
    System.out.println("d2 :"+d2);//d2 :3.1415927
    int d3 = (int)d2;//int 只取整数 
    System.out.println("d3 :"+d3);//d3 :3

特殊情况

int b1 =100;
short b2=50;
int b3=b1/b2;//大类型跟小类型的进行的运算结果就是大类型 不能赋值到小类型上面

两个数据运算,得到的结果是两个中最大的数据类型决定的

八、Scanner类 -控制台输出

Scanner类是 java提供的类 可以直接拿来用

新的JAVA基础第一天---数据类型等_第5张图片

新的JAVA基础第一天---数据类型等_第6张图片
案例

 //输入个数 鸡头1  鸡爪3块  求总价
        System.out.println("你吃啦多少个鸡头");
        Scanner sc = new Scanner(System.in); //创建一个控制台输入对象
        int tNum=sc.nextInt();//通过sc.next()取出你的控制台输入的数据

        System.out.println("你吃几个鸡爪");
        Scanner sc1=new Scanner(System.in);
        int zNum= sc1.nextInt();
        System.out.println("你吃了"+(tNum*1+zNum*3)+"元");

小记:
其实java程序的开发是基于SUN公司提供的一套基础的类库开发的 ,你要早点这个原码在哪
E:\app\jdk1.8\src.zip

例如String.java 和String.class
ASCII(小表):American Standard Code for Information Interchange 美国信息交换标准代码
Unicode码表(大表):万国码,也是数字和符号的对照关系,开头0-127部分和ASCII完全一样,但是从128开始包含有更多字符。
新的JAVA基础第一天---数据类型等_第7张图片

两个数据运算,得到的结果会自动的提升为两个数据中较大的类型。

程序一般跑在服务器端 需要抗大量并发(类似多线程)需要考虑内存的消耗问题
程序代码尽量细化 减少内存空间的占用

java的变量是强变量 ,是必须实名数据类型的变量
java的数据类型更细化,更考虑内存的消耗

你可能感兴趣的:(java-笔记,java,java-ee)