初识java
java c c++ c#都是第三代语言,由于里面包含了一些面向对象语言(与人的生活息息相关),所以又可以称之为三代半.SQL数据库语言属于第四代语言.
java之父---詹姆斯.高斯林
java三个方向:
2007年之前分别叫: j2se; j2ee; j2me.
1, javaSE(java Standard Edition); 基础
2, javaEE(java Enterprise Edition); 企业用
3, javaME(java Micro Edition)---可以做Android;
Java中的名称规范:
包名:多单词组成时所有字母都小写。
xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写。
Xxx Yyy Zzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二
个单词开始每个单词首字母大写。
xxx Yyy Zzz
常量名:所有字母都大写。多单词时每个单词用下划线连接。
XXX_YYY_ZZZ
java语言的一个核心:
jdk( java development kits)---面向开发人员
jre(java Runtime Environment)---配置在服务器上 面向用户的运行环境;
java的两个核心机制:
java虚拟机--*.class;
java编译器--字节码--类加载器进行验证---虚拟机运行;
java编程语言(一门纯面向对象,解释型语言)的特点:
1,面向对象
封装; 继承; 多态
2,安全性
3,跨平台
配置环境变量:
java_home
classpath
path
样式为:
public class 类名 { public static void main(String[] args){ System.out.println(111); } }
需要注意的地方:
类名与文件名保持一致(完全一样)
标识符
凡是需要你自己命名的地方,都叫标识符
java编程严格区分大小写
标识符的命名不能与关键字重复
保留字:goto const等
规则:
标识符由字母(大小写), _, $,并且不能以数字开头
代码规范:
驼峰命名法
String empName
getElementByid
java基础数据类型:不能=null
四类八种:
整数型
byte 2的八次方(256:-127,128) 内存中占1个字节(8个二进制表示1个字节)
short 2的16次方(-30000,30000) 内存占2个字节
int 2的32次方( ,214748) 内存中占4个字节
long 2的64次方 内存中占8个字节
浮点型
float--小数点后有效数字7位(单精度);
double--小数点后有效数字16位(双精度);
布尔型boolean
只有两个值:true;false 内存中占1个字节
字符型
char A=' '; 内存中占2个字节
类型的转换:
double float long int char short byte
用char short byte 进行运算的时候, 取值默认为int
隐式转换(低->高), 显式转换(高->低)
运算符:
算术运算符: + - * / % ++ --
关系运算符: > < >= <= == !=
逻辑运算符: ! & && | || ^(异或运算符)
其中:& 和 | 是 位运算符;
&&逻辑与也叫短路与.只要当前项为假,判断式不再往后判断,认定表达式为假; (eg.false && true //false)
|| 逻辑或也叫短路或.只要当前项为真,判断式不再往后判断,认定表达式为真; ( true || false //true)
三元运算符(表达式)(三目运算符):
布尔值?值1:值2;
eg.x < y ? "1" :"2";
位运算符:>> << >>>(无符号右移) //手写一般写8位,,计算机里是显示32位这样算的,别看错了
>> << 前面加一;
>>> 前面加零;
eg. -5>>>2
//解析: 先将5 转成二进制,为:101.,写成8位,为 0000 0101
由于是-5,所以要先-1,在取反. -1为0000 0100 取反为 1111 1011
无符号右移2位,前面加0. 为 0011 1110, 所以结果为62.
赋值运算符:= += -= *= /= %=
字符串连接运算符:+ eg. 3+5+"a"--->35a
(整个表达式中只要有一个是字符串, 那整个结果都是字符串)
需要注意的地方: 在输出的时候, 只要有一个参数是字符串, 整个输出结果都是字符串
++b:先自增再赋值
b++:先赋值再自增
int a=5;
int b=3;
a < b && ++b ? "1" : "2"
结果应该为2false
分支循环:
if...
if...else...
if...else if...
if...else if...else...
switch...case...default(思考一个问题: 既然有了if, 为什么还要有switch...)
switch只能使用在判断int型或者String类型的变量上,
for循环
for(int i=0;i<5;i++) {
...
}
foreach循环
String[] str = ...
for(String s : str) {
...
}
break;
终止循环
continue;
退出本次循环, 继续下次循环