1、3个技术:javase javaee javame
2、两个时间点:1995年sun公司推出 2009年被oracle公司收购
3、语言特点:跨平台 解释执行 面向对象 支持多线程编程 鲁棒性 自动垃圾回收 相对容易
4、jdk和jre的关系:jdk=jre+开发工具包
jre=jvm(虚拟机)+核心类库
5、环境搭建:1、默认安装jdk
2、配置环境变量 新建JAVA_HOME= C:\ProgramFiles\Java\jdk1.7.0_02 修改 path=C:\Program Files\Java\jdk1.7.0_02\bin
3、打开dos窗口输入命令 javac java -version--查看jdk的版本号
6、第一个java类:1.编写.java源文件 2、编译成.class文件(使用javac.exe) 3、运行(使用java.exe工具)
注意:1、Java的源文件均为.java文件
2、一个Java文件中可以有多个类,但是通常建议为一个
3、.java文件名必须与public类名同名,如果类不是public,文件名可以不与类同名,但是不建议如此
4、一个Java类如果需要运行,必须有符合规范的main方法,即public static void修饰的main方法,参数为String[]。
5、main方法是程序的主入口。
7、转义符 \n--将光标移动到下一行的第一格 \t--将光标移到---下一个水平制表位置
--------------------------------------------基本数据类型--------------------------------------------------------
1、变量:
定义:java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
声明形式:数据类型 变量名【=变量值】
注意:每一个变量使用前必须要先申请(声明),然后必须进行赋值,才能够使用。
2、成员变量和局部变量以及作用域
局部变量:方法内部声明的变量(包括参数)称为局部变量
成员变量:在方法外,类体内声明的变量叫做成员变量
作用域:凡是在大括号里面声明的变量,出了大括号就没人认识它了
3、程序执行的内存分析:参照ppt
4、数据类型分为基本数据类型(4类8种)和引用数据类型(除了基本数据类型都是引用数据类型)
基本数据类型:
//整型:如果一个整数就用int;默认值为0
byte b = 127; //byte的取值范围-- -128~127 8位 1字节
short s = 128; // -32768 ~ 32767 16位 2字节
int i = 1; //32位 4字节
long l = 13214113515311L; //64位 8字节 结尾处加L
//浮点型:如果要声明小数用double类型 ;默认值0.0
float f = 2.3f; //32位,4字节 结尾处加f
double d = 2.3;//64位 8字节
//字符型 一个英文和字母各占1个字节,汉字占2个字节。 默认值:\u0000等同于一个空字符
char c1 = 'a';//16位 2字节 无符号位 取值范围:0~2^16-1 采用unicode编码
char c2 = '男';
int c3 = 'a'+'b'; //195。//195没有超出int范围,直接输出195。
char c4 = 'a'+'b'; //char类型相加,提升为int类型,输出对应的字符。注,在CMD.exe用输出结果是问题?,不同的编码输出显示不一样。Eclipse中须改成UTF-8。
char c5='a'+1; //提升为int,计算结果98对应的字符是b。
System.out.println(c5);
//布尔类型 默认值:false
boolean bl = true; //8位 1字节 只有true或者false
类型转换:低精度转成高精度---自动类型转换(隐式转换)
高精度转成低精度---强制类型转换(显示转换)
---------------------------------------------简单语法-----------------------------------------------------
1、代码规范
1、写代码一定加注释
2、加空格 eg:=两侧 方法之间或者逻辑段之间要加空白行
3、标识符的命名一定要规范--- 一定要用英文命名
4、写代码要注意格式化,尤其是缩进
2、注释
1、// 单行注释 快捷键 ctrl+/
2、/* 多行注释 快捷键 shift+ctrl+/ */
3、/**
* 文档注释
* @Title: main?
* @Description:?
* @param args void
*/
3、标识符命名规则
1、必须由字母、数字、下划线和$符号组成
2、不能以数字开头
3、不能使用系统关键字和保留字
4、不能使用空格来分隔
5、使用驼峰命名法 从第二个单词开始首字母大写 eg userNamePwd
6、类名:首字母大写,驼峰命名法 eg:MyOrder
变量名: 首字母小写,驼峰命名法 eg: userName
方法名:首字母小写,驼峰命名法 eg:getUserName()
常量:全部大写
接口:首字母大写,驼峰命名法
----------------------------------------运算符------------------------------------------------
1、运算符分为算术运算、位运算符、比较运算符、逻辑运算符
2、算术运算符:+(不仅是+运算还可以拼接字符串) - * /(求商) %(取余数) ++(自增1) --(自减1)
eg:int c = a++; // a++ 先赋值再自身加1 3 int d = ++a; // ++a 先自加1 再赋值 5
三目运算符 a>b?true:false 如果a>b就执行冒号左侧的操作,否则执行右侧的操作 eg:int g = a > b ? a + b : a - b;
注意:1、 System.out.println(3.0/0); 结果:Infinity(无穷大)常量
2、System.out.println(3.0/0.0); 结果:NAN
3、Scanner类位于java.util包中 作用:使用此类获取控制台输入
使用步骤:1、使用控制台输入创建Scanner对象 System.in--标准输入 eg:Scanner sc = new Scanner(System.in);
2、调用Scanner中的nextXXX方法,获得需要的数据类型。nextDouble() 获取小数 next()和nextLine()获取字符串类型
eg:int num = sc.nextInt(); //接收控制台输入的int类型数据
4、位运算符
&:按位与 两位同时为1才返回1
* 5:0000... 0101
* 9:0000... 1001
* 5&9:0000... 0001 1
*
* |:按位或,只要有一位为1即可返回1
* 5:0000... 0101
* 9:0000... 1001
* 5|9:0000... 1101 13
*
* ~:按位非,将操作数的每个位(包括符号位)全部取反。
* 正数的原码反码补码相同的
* 负数的反码:是按位取反(除符号位) 补码:反码+1
* 原码:0000... 0101
* 反码:0000... 0101
* 补码:0000... 0101
* ~5取反:1111... 1010
* 反码:1111... 1001 补码-1
* 原码:1000... 0110 反码出符号位取反 -6
* ---------------------------------
* 原码:1000 ... 0101
* 反码:1111 ... 1010
* 补码:1111 ... 1011
* ~-5取反: 0000 ... 0100
* 反码:0000 ... 0100
* 补码:0000 ... 0100
* 原码:0000 ... 0100 4
*
* ^:按位异或,相同返回0,不同时返回1
* 5:0000... 0101
* 9:0000... 1001
* 5^9:0000... 1100 12
*
* >>(有符号右移): 8>>2 ======== 8除以2的2次幂===相当于===左操作数除以2的右操作数次幂 结果2
* <<(左移): 8<<2======== 8*2的2次幂===相当于===左操作数*2的右操作数次幂 结果32
*
*
*
* ~1 结果-2
* 原码~补码:0000 0001
* 1111 1110
* 1111 1101
* 1000 0010
5、比较运算符 == != > >= < <=
注意: 1、==与!=比较基本数据类型是比较值,比较引用类型是虚地址 (比较两个字符串是否相等使用equals方法)
2、除了== !=外,都只能比较基本数据类型
3、比较运算符的返回值为true或false
6、逻辑运算符
1、&&和& :全真为真 有假为假
2、||和|:全假为假,有真为真
3、&&与&的运算结果是相同的,对于&而言无论左边无论是什么值,右边都参与运算;对于&&来说,只要左边为false右边就不再运算,直接返回false ; ||和|同理