==================================================================
1.java入门
1 操作系统
专业操作系统 unix --- linux 7*24
1 稳定 安全
2 多用户 多任务 操作系统
3 服务器(高性能计算机)IBM power Oracle
用户(键盘 鼠标 显示器)------- 服务器
个人用户操作系统 --- windows
unix/linux
特点:
1 每一个用户对应一个自己的文件夹
主目录(home目录)
2 权限
3 linux/nuix 文件
unix
oracle : solaris / linux
ibm : AIX
HP : HP unix
linux
红帽子 : redhat linux 6.0
SUSE :
------------------------------------------------------------------------------------------------------------------
2.java的发展史:
1991年 sun Green
1992年 james Gosling OAk
1995年 java问世
1996年 jdk1,0
1999年 java 2发布(java se、java ee 、java me)
2004年 Tiger发布,java登陆火星
2009年 Oracle以超过70亿美元的交易总值收购了sun
java SE
包含了运行java应用所需要的基础环境和核心类库
定义了基于桌面应用的基础类库,通过使用这些类库,我们可以编写出类似于像Office那样的丰富多彩的桌面应用
java EE
java平台企业版
用于构建企业级应用,所谓企业级应用是指那些为商业组织、大型企业而创建的应用系统
java ME
java平台微型版 为机顶盒、移动电话和PDA等嵌入式消费电子设备提供的java解决方案。随着3G移动智能平台时代的到来特别是以java为核心编程语言的Android智能平台的迅速普及,java ME走向淘汰
-----------------------------------------------------------------------------------------------------------------
3.java的运行机制:
先编译,在解释,
Demo1.java------>先进性编译,demo1.class文件------>在逐行进行解释---->机械码----->虚拟机中进行运行
--->显示出来
编程语言历史:
(1)机械语言:直接跟硬件进行操作 01000101
(2)汇编语言:
(3)中级语言:c语言
(4)高级语言:java
计算机程序运行原理
图灵:苹果咬了一口,就死了,
.java------->.class文件 ------>机械码
-------------------------------------------------------------------------------------------------------------------
4. java基础语法
包 package
包 解决文件命名冲突的问题 本质 文件夹
类的全限定名 suns.Test
suns.test.Test
zhangsan.Test
JDK 中 SUN 公司提供的包
java.lang
java.util
java.io
java.bean
包的命名 : 原则随便 但是 包名不能用java.
公司开发过程中 :本公司域名反写命名包
www.heima.com
com.itheima
www.apache.org
org.apache
----------------------------------------------- -------------------------------------------------------------------
5.标示符
起名字
1 字母 数字 _ $
首位置不能使用数字
public class B2{}
2 java严格区分大小写
3 不能使用java的关键字与保留字
package public class static void
约定俗成的习惯
类 首单词首字母大写 TestJava
变量 一个单词全部小写 多个单词 首单词小写后续每一个单词首字母大写
test testJava
方法 与变量一致
接口 与类一致
常量 一个单词全部大写 多个单词 TEST_JAVA
望文生义 public class A
public class Test
------------------------------------------------------------------------------------------------------------------
变量------内存中的一块存储区域
1 程序运行在哪里? 内存里
2 程序处理什么?数据
数据必须要存储在内存中
变量
内存中开辟一个空间 用于存储数据
变量名 内存空间起的名字
变量类型
变量3要素
1 变量类型 变量名 变量值
变量是一个强类型(强类型是需要先定义)
作用域:java变量有其存在的范围,程序运行超出这个范围后,这个变量所占的空间将被收回,
同名变量,作用域不能重叠。
------------------------------------------------------------------------------------------------------------------
java的数据类型
8种基本数据类型
1.整数类型 int long byte short (345l)
2浮点型 float(32) double(64)21.1f
3.字符型 char(16)占两个字节
4.布尔型:boolean (true /false)
引用类型:(为了简化操作,sun公司或其他程序员写的类型)
String---对char的一种引申
--------------------------------------------------------------------------------
整数
byte -128---127 -2^7 -- 2^7-1 一个字节 8位
short -32768--32767 -2^15 -- 2^15-1 两个字节 16位
int -2147483648--2147483647 -2^31--2^31-1 四个字节 32位
long 八个字节 64位 -2^63--2^63-1
转移字符 字符的原始含义改变 表达了新的含义
'\n' 换行
'\t' 退格
'\\' 原样输出\
'\"' 原样输出"
'\r'
'\''
变量类型
1 基本数据类型 8种
计算机存储 5 10 100 200 十进制的数字
二进制的数字 0 1
10---2
5/2 = 2 余 1
2/2 = 1 余 0
1/2 = 0 余 1
2---10
101
1*2(0)+0*2(1)+1*2(2)
1 + 0 + 4 = 5
注: 8进制 0开头 027
16进制 0x开头 0X1F
注:字面值:一种变量类型 可取的有效值
byte b = 127;
byte a = 128;
long l = 100L;
100l;
浮点数(小数)
float(单精度浮点数) 4字节
float f = 10.2F;
float f = 10.2f;
double(双精度浮点数) 8字节
double d = 10.2;
double d = 10.2d;
double d = 10.2D;
注
1:用科学计数法表示
double d = 3.14e10
double d = 3.14e-10
2: 丢失精度
布尔值 真|假
boolean
boolean b = true;
boolean b = false;
boolean c = TRUE;
字符
字面值3种方式
1
char c = 'A';
2
char c = 65;
3 unicode编码 '\uxxxx'
char c = '\u0041';
类型转换
自动类型转换
1 小类型的数据 ----》 大类型的数据
int i = 100;
long l = i;
2 运算过程中的类型提升
如果参与运算的双方
其中有一方为 int 其运算结果类型为int
其中有一方为 long 其运算结果类型为long
其中有一方为 float 其运算结果类型为float
其中有一方为 double 其运算结果类型为double
剩下其运算结果为int
byte c = 1;
byte d = c+1;
int c = 1;
int d = c+1;
Math.round(12.58);//四舍五入
char c = 'A';
char d = c+1;
强制类型转换
short c = 10;
byte e = (byte)c;
-127
-128 --- 127
byte c = (byte)129;
char c = 'A';
char e = (char)(c+1);
char e1 = 'A'+1;
有变量参与的运算才会产生类型提升
值的运算没有类型提升
运算符
1 赋值运算符
int i = 10;
2 算数运算符
+ - * / %(模|余)
int i = 10;
int b = 20;
System.out.println(i+b);
int c = 10/20;
整数/整数 = 整数
取余数
5%2 = 1
数字%2 == 0
+= -= *= /= %=
int i = 10 ;
i+=2 差不多 i=i+2;
System.out.println(i);
byte i = 10;
i+=2 ;
System.out.println(i);
++ -- 运算符
i++
++i
对i都是为原有的变量值+1
i++ 这个表达式的值为10 记法 i 原始的值
++i 这个表达式的值为11 i+1 之后的值
逻辑运算符 boolean 值 true false
& true&true = true
true&false = false
false&true = false
false&false = false
规律 : & 一方为false 结果为 false
| true|true = true
true|false = true
false|true = true
false|false = false
规律 : | 一方为true 结果为 true
&& 短路与 V
true&&true = true
true&&false = false
false&&true = false
false&&false = false
|| 短路或
true||true = true
true||false = true
false||true = true
false||false = false
true&true = true
true&false = false
false&true = false
false&false = false
true&&true = true
true&&false = false;
false&&true = false;
false&&false = false;
比较运算符 比较运算其结果是boolean
> < >= <= == !=
---------------------------------------------------
10进制 --- 2进制
Integer.toBinaryString(十进制);
10进制 --- 16进制
Integer.toHexString(十进制);
如何获得用户输入的数字?
java.util.Scanner input = new java.util.Scanner(System.in);
int num = input.nextInt();
----------------------------------------
用户输入一个10进制数 ----> 2进制
1 如何获得用户输入的数字
2 如何把用户输入的10进制数字 ---> 2进制
Integer.toBinaryString();
3 如何显示转换好了的2进制数
System.out.println();
1 开平方 Method.pow();
2 随机输出字母 Random r = new Random();
r.xxx();
表达式:变量|常量+运算符组成的式子 表达式值
局部变量
String字符串
--------------------------------------------------------------------------------
算术运算:
加(+) 减(-) 乘(*)除(/) 取余(%)
关系运算:
关系运算符 > < =
逻辑运算: && || ! | &
短路与与非短路与的区别
短路或与非短路或的区别
首先名称是不同的
&&逻辑与 ||逻辑或 它们都是逻辑运算符
& 按位与 | 按位或 它们都是位运算符
if(a==1&&b==2) 这是说既要满足a=1也要满足b=2
if(a==1||b==2) 这是说或者满足a=1或者要满足b=2
而a&b或者a|b则是二进制的与或运算
&同为1时为1,否则为0
|同为0时为0,否则为1
3&5则
0011
&0101
0001
等于1
3|5则
0011
|0101
0111
等于7
&&逻辑与 也叫做短路与 因为只要当前项为假,它就不往后判断了,直接认为表达式为假
||逻辑或 也叫做短路或 因为只要当前项为真,它也不往后判断了,直接认为表达式为真
--------------------------------------------------------------------------------------------------------------