内容
java基础知识, java流程控制语句, 常用包和类 ,数组操作, 面向对象的概念 ,异常处理 ,文件访问iO流, 数据集合操作, 集合框架
jDBC访问数据库
目标掌握基础
- java语言简介
- JDK安装和配置 ok
- java运行原理 ok
- Hello World案例
- java的数据类型、变量、运算符、注释
- 控制台的输入输出
Java语言是美国Sun公司(stanford University Network),在1995年推出的高级编程语言。所谓编程语言是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。
1996年1月,Sun公司发布了Java的第一个开发工具包*(JDK 1.0)*,这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具。
詹姆斯·高斯林 (James Gosling)是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为“Java之父”。
javaB 爪哇岛
版本 | 名称 | 发行日期 |
---|---|---|
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
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面向对象: 封装,继承,多态,抽象,接口
后面学习:
面向接口
面向切面
java体系技术划分:
javase;标准版
java Standard Edition pc方向 桌面应用
javaee;企业版
java Enterprise Edition 可扩展的企业级应用java平台 服务器项目 网页
学习javaWEB(Servlet jsp)
javame:微型版
java Micro Edition 用于嵌入java平台 移动 设备应用
确认自己学什么
java语言可以编写桌面应用程序(类似于电脑QQ,但是java不擅长)、Web应用程序(服务器程序)、分布式系统和嵌入式系统应用程序等。人工智能。python(黄金语言) 。
主要应用在web程序的开发领域,常见的互联网应用比如天猫,京东,物流系统,网银系统等,以及服务器后台处理大数据的存储,查询,数据挖掘等也有很多应用。
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是支持跨平台操作的一门语言。
Java运行环境(Java Runtime Environment,简称JRE)是一个软件,由SUN微系统所研发,JRE可以让计算机系统运行Java应用程序(Java Application)。JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类别函数库(Class Library)。
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。(电工的工具包钳子,螺丝刀,欧姆表。。。 )jdk中自带有jre。
慢慢学不要着急
- 以后任何安装路径都不要有中文路径
- 以后我们的软件统一装到某个盘的某个文件夹中 E:\app
- 我们安装完成之后 又弹出一个框 这是提示我们安装jre,Jdk安装完成之后 已经有jre了 所以 这个地方取消安装
- 安装完成jdk之后 在jdk文件夹中 Bin 这里面是java的执行文件 Include 这里面导入c和c++的一些代码 Jre java的运行环境 Lib 资源库
- 配置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
开发环境搭建完成后,可以开始开发我们的第一个java程序了。
javac.exe :编译器 javac 编译命令
java.exe :解释器 java 运行命令
Java程序开发三步走:编写,编译,运行
解释性:脚本
编译型:
XXX.java–编译–>XXX.class
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结束必须写;号
先练习创建项目10遍
打开百度–》搜索idea用法—》整体浏览
注意
包就是文件夹。类比,css,js,img。
不同模块的代码可能有相同的名字。使用包来分割/存储不同的功能的代码。
包的命名规范:
特点:全小写,点分隔,反域名。
www.taobao.com
com开头:公司项目 com.aaa.chaoshi.util
org开头:公益项目
java开头:java中的类包
扩展:自己去百度–》包的命名规范
文档注释写在类的上边 /** */
多行注释,写在方法上边 /* */
单行注释方法里边。 //
3.5、关键字
是指在java中有特殊含义的,被保留的,不能随意使用的字符
特点:会识别 全小写 有颜色
概念:在程序中我们自己定义名字的内容。
比如类的名字、方法的名字和变量的名字等,都是标识符
必须的要求
- 构成:字母、数字、下划线 、$符号
- 首个只能是:字母 、下划线 、$符号,不能以数字开头还不能以空格
3严格区分大小写- 不能使用关键字
软性 就是规范不属于语法 不会报错
3.7、字面值:
字表明的值 能看出来 的 字面值就是数据 是java源程序组成部分之一
数据在现实世界是有分类的 所有在java里面也有数据类型
-100、10、4
-3.14
-“abc”
注意
java所有字符串“” 双引号
java所有字符‘’ 单引号
常量:是指在java程序运行期间固定不变的数据
本身数值大小‘不是‘常量’的内涵
常量
常量命名 全大写+下划线字母命名
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);
类型 | 含义 | 数据类型 |
---|---|---|
整数常量 | 所有的整数 | 0,1,567,-9 |
浮点数常量 | 所有的小数 | 0.0,-0.1,3.55 |
字符常量 | 单引号引起来,只能写一个字符,必须有内容 | ‘a’ , ’ ’ , ‘好’ |
字符串常量 | 双引号引起来,可以写多个字符,也可以不写 | “A”, “Hello” , “你好” ,"" |
布尔常量 | 只有两个值,流程控制语句中使用 | true, false |
空常量 | 只有一个值(引用数据类型讲解)没有任何数据 | null |
常量命名:全大写+下划线字母命名
(翻译: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;//此变量会用这种方式声明的变量将会成为全局变量
}
练习 : 打出所有类型
为什么用变量?间接的思想,间接的越多,证明程序越优秀!
为了程序方便,为了更好的的满足需求
来源于数学的变量
数学中可以使用字母代替数字的方式运算,例如x=1+5或者6=x+5;程序中也是一样是的,相当于一个容器,内部可以存储数据。
Java中要求一个变量每次只能保存一个数据,必须明确保存的数据类型。
在内存中开辟一个值 存储一个值 这个值的名字是变量名 变量必须定义类型
数据类型 名称 字面值
在不同的作用域里 变量可以重名
方便其他地方调用这个变量
弱变量
变量名无法决定数据类型
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遵循“就近原则”
}
}
两种数据类型
基本数据类型和引用数据类型
基本数据类型
声明:数据类型 变量名 = 初始值;
基本数据类型:四类八种
整形 整数 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);//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中用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 = 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,如果是连续判断不能连着写。
&&(并且) 所有条件全都满足才是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类是 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的数据类型更细化,更考虑内存的消耗