内容

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.新建一个文本文档文件,其中编写以下代码

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

整形:

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);//10System.out.println(b);//8System.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);//-58short 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中用char表示
每一个char类型的字符变量都会占用两个字节 16位
char赋值的时候 必须用单引号吧字符括起来‘a’
char类型的变量赋值范围是0~65535内的整数
char a = ‘中’;

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

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

任何字符在内存中都是以数字的形式存储的。

反斜杠在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 = 1024byte1 mb = 1024kb1 GB= 1024 MB1 TB = 1024 GB1 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<b ? a:b;
System.out.println(c);// c=10    ?是一个判断  满足前面的判断就把冒号前面的值发过去不满足就相反

优先级

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

++ 是条件运算符

七、数据类型转换

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.1415927int d3 = (int)d2;//int 只取整数 System.out.println("d3 :"+d3);//d3 :3

特殊情况

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

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

八、Scanner类 -控制台输出

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


案例

 //输入个数 鸡头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的变量是强变量 ,是必须实名数据类型的变量
java的数据类型更细化,更考虑内存的消耗

新的JAVA基础第一天---数据类型等相关推荐

  1. Java基础第一讲:Java的故事和Java编程环境搭建

    { Android学习指南 } 适于自学的ANDORID学习指南,基于ANDROID 2.2.2.3.3及3.0版本讲解 <ANDROID学习指南>目录 RSS Java基础第一讲:Jav ...

  2. 传智java测试题答案_传智播客Java基础第一阶段习题

    关于java程序员面试的经典题目 传智播客Java基础第一阶段习题 一.单项选择题 1.Java源文件和编译后的文件扩展名分别为( ) A..class和 .java B..java和 .class ...

  3. JAVA基础之变量(数据类型及其转换)

    变量 变量的概念: 内存中的一个存储区域: 该区域的数据可以在同一类型范围内不断变化: 变量是程序中最基本的存储单元.包含变量类型.变量名和存储的值. 变量的作用: 用于在内存中保存数据. 使用变量注 ...

  4. java基础之封装数据类型

    为什么要使用封装数据类型: Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,很多地方都需要使用对象而不是基本数据类型.比如,在集合类中,我们是无法将int .doubl ...

  5. Java基础之基本数据类型

    前言:Java内功心法之基本数据类型,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 变量就是申请内存来存储值.也就是说,当创建变量的时候,需 ...

  6. Java基础笔记之数据类型

    一.数据类型 (一)8种基本数据类型(内置数据类型\C#中为值类型) 字符长度:1byte = 8 bit; 布尔:可认为是 1byte (8 bit); 字符: char:2/16 整型: shor ...

  7. java基础 第一章 对象入门

    第1章 对象入门 "为什么面向对象的编程会在软件开发领域造成如此震憾的影响?" 面向对象编程(OOP)具有多方面的吸引力.对管理人员,它实现了更快和更廉价的开发与维护过程.对分析与 ...

  8. 韩顺平Java基础-第一阶段(建立编程思想)

    目录 第 2 章 Java概述 第 3 章 变量 第 4 章 运算符 第 5 章 控制结构 第 6 章 数组,排序和查找 第 7 章 面向对象编程(基础) 第 8 章 面向对象编程(中级) 第 9 章 ...

  9. Java基础 - 第一章 计算

    为什么80%的码农都做不了架构师?>>>    #1.1 第一个Java程序 package my.hava.javabasis.lesson;/*** Created by zha ...

最新文章

  1. SQL基础---SQL WHERE 子句
  2. Drupal8系列(五):主题制作之搭建框架-Ubuntu 14.04 LTS
  3. CentOS7下安装pssh并使用
  4. Javascript 常用功能收集-blogjava
  5. cookie session token区别_彻底理解cookie,session,token
  6. js使用深度优先遍历实现getElmentById(id)
  7. 用线程实现动态改变图标
  8. linux5.5 里dns,RedHat 5.5搭建各种DNS服务器(3)
  9. javascript基础与编写习惯
  10. ZT: Delphi编程规范1.0.0.0 (yckxzjj )
  11. html页面字段怎么排版,如何做好html的排版标签
  12. java获取当前执行文件的路径
  13. WCF NetTcpBinding Transport安全模式(7) ClientCredentialType证书验证模式---- ChainTrust验证模式...
  14. 2017 【第八届蓝桥杯省赛】 C/C++ B组
  15. jsp中的九大内置对象和四大作用域
  16. oracle11g的adg需要付费嘛,Oracle11g ADG 搭建
  17. 读书笔记 —— 《深入浅出MySQL数据库开发、优化与管理维护 第2版》
  18. html ajax 图片上传,Ajax 上传图片并预览的简单实现
  19. Win11想运行老游戏怎么设置
  20. java 内存分析 工具_Java程序内存分析:使用mat工具分析内存占用 - 王爵的技术博客...

热门文章

  1. laravel rbac权限管理系统
  2. 通过sql跟踪对金蝶K3系统后台数据库执行逻辑跟踪,提取原版SQL语句
  3. 模拟CMOS集成电路设计入门学习(0)
  4. 基于.net开发chrome核心浏览器【四】
  5. Mapabc里InfoWindow自定义窗口时的关闭事件。
  6. window10系统基于theano安装Keras
  7. QT 串口通信,操作程控电源 Agilent 66312A
  8. 达梦数据库disql工具使用
  9. Android行业薪资现状,月薪2万属于低收入!
  10. 【简单算法】回文数(C语言)