我对于java基本语法本身有一定的基础。真的,再学一遍会有不一样的感觉。
1、代码结构 public class 类名{ public static void main(String[] args){ //代码块 } } 在eclipse中,一些快捷键 alt + shift + N 新建 C 新建类 P 新建包
syso ->System.out.println(); alt + / 跳出提示 ctrl + S 保存 ctrl + shift + S 全部保存 文件名前面*表示未保存 alt + shift + X,J 运行
-----------2、软件包[package] 语法: package 包名; 包名就是由字母、数字、_,不以数字开头的字符字符序列。 多级包名之间使用.隔开,如: package java.lang; package a.b.c.d.e.f.g;//ok 命名规则: A)、一般以公司域名为前半部分,如:com.ali.xx.xx.xx; com.tz.xx.xx; B)、以项目名和功能划分为后半部分,如:com.ali.crm.servive; com.tz.se.day02; 包的作用; 包名在编译完成后生产的字节码中,会有对应的目录结构。 所以,它可以很好地管理源文件和字节码。 它还扩展了类的命名空间。 如:有一个类都叫:Date 那我们可以把它存放在不同的包中,如: java.util.Date; java.sql.Date; 这两个类的名字[简名]虽然不一样,但是处在不同的包中,是可行的。 他们的全限定名是不一样的,因为全限定名是 包名.类名3、导入语句 语法: import 包名.类名|*; 支持通配,只能通配类名,不能通配包名。 可以写多次。 何时需要使用导入语句? 当一个类中需要使用非本包中的其他类时,则需要使用导入语句。
除非目标类是在java.lang下 ctrl+D 删除该行 语句 statement4、注释[comments] 是为了增加代码的可读性、理解性的一种手段,JVM的编译器是会忽略他的。 JAVA语言支持三种注释: A、单行注释,以//开头 B、多行注释,以/*开头,以*/结尾 C、文档多行注释,以/**开头,以**/结尾 如: /** *XXXX *XXXX *XXXX */ 这种注释,将来可以通过javadoc命令来提取
ctrl + M 窗口最大化充满一颗好奇心是非常重要的。
Window->Preferences->Code Templates ->Comments 注释模板 -->Files /** * */ -->Types /** *@author &{user} *@version 1.0 *@CreateDate ${date} ${time} * *${tags} 本类${file_name}的描述: */ -->Code 代码模板5、数据类型 数据 类型 两个大类: 1.基本类型,分8种 byte 1个字节[-128,+127] short 2个字节[-32,768,+32,767] int 4个字节[-2,147,483,648,+2,147,483,647] [-2^31,+2^31-1] long 8个字节[-2^63,+2^63-1] 10^19 double 8个字节 10^308 float 4个字节10^38 char 2个字节一种特殊的整数,范围同short boolean 1个字节 只有2个值,true和false 在Java中,最高位代表符号位,1为负,0为正。 以8位二进制为例,所以: 二进制 十进制 0 000 0000 =>0 0 111 1111 => +127 1 000 0000 => -128 1 111 1111 => -1 2.对象类型【数不胜数】 所有的非基本类型都是对象类型,如: String,System... 所以,我们编写程序,也就是不断地创建类型. 因为我们想表达我们要表达的数据. 了解计算机存储数据的方式 采用二进制【由0和1组成】 规定每8位为一个字节。 这样,1个字节所能表达的状态有:2^8=256 种6、变量、常量、字面量变量,variable,是一种可以变化的量 语法: 数据类型 变量名 [= 初始值];[]代表可以省略 变量名,由字母、数字、_组成,并且不能以数字开头。 如:i,a,ai,hehe,a5... 注:给变量命名时尽肯能地有意义[见名知意] 如:定义一个变量来存储年龄 int age;//变量没有初始化 age = 10;//给变量赋值 以上两行语句也可以合在一起: int age = 10; //定义一个长整型变量,并初始化为100. long a = 100L; //长整型字面量以L或l结尾 //定义一个浮点数变量 double height = 176.5; //单精度浮点 float weight = 68.5F;//以F或f结尾常量 literal 是不变的变量 语法: final 数据类型 常量名 = 初始值; 如: int i = 100; i = 90;//ok final int J = 200;//常量 J = 230;//error 注: 常量名一般采用大写字母。 如: final String MSG = "hahaha"; ==字面量[literal] [constant]“双引号括起来的”
就是字面本身的量. 只有8种基本类型的字面量以及字符串String类型才有字面量。 /* int result = 1 * 8 + 1; int i = 1; int k = 8; int j = 1; int result = i * k + j; */ 如:1,4,5,100L,true,false,'a',"abc";
作用:用来给变量或者常量赋值。快捷键 ctrl + alt + 下箭头 屏幕180度翻转 在eclipse中 ctrl + alt + down 复制当前行 alt + down 粘贴复制到下一行 home 行首 end 行尾 alt + down 代码下拉一行Debug 断点 breakpoint 双击行标 挂起 Suspended F5 (Step Into) F6 (Step Over)一步一步走,一行一行走 F7 (Step Return) F8 一个一个断点走
----------------1.运算符[opertator] A.赋值运算符 = 左值,出现在赋值运算符左边的量【局部变量、常量】 右值,出现在赋值运算符右边的量【局部变量、常量、字面量】 B.算术运算符 +,-,*,/,%,++,--,+=,-=,*=,/=,%= 针对++和——运算符,它分为:前 和 后操作 前++,变量本身和表达式的值都增1. 后++,表达式的值不变,变量本身的值增1. JAVA基本类型中,除了boolean不能做算术运算外,其它的7种类型都 可以进行算术运算,它们遵守如下两条规则: A.byte,short,char,int之间的运算,结果总是int B.除A外规则,其他的按照从小到大的原则进行转换,如下: byte,short,int ->long ->float ->double char/ -- 类型转换问题 A.隐式类型转换 当小范围变量、字面量赋值给大范围变量时发生。 如: byte b1 = 12; int i = b1;//ok char c = 'a'; i = c;//ok,结果是 97 B.显示类型转换【强制类型转换】 当大范围变量、字面量赋值给小范围变量时发生。 语法:(新类型)变量或者表达式或者字面量 int i = 97; char c = i;//error,有可能丢失精度 char c = (char)i;//ok,做了强制类型转换 --- 有关字符的表达方式 在JAVA中,字符使用单引号括起来,它有如下三种表达方式: A.普通表达方式,每对单引号中只能有唯一的字符 char c1 = 't'; char c2 = '你'; B.特殊字符表达式[使用转义符转义过的] char c3 = '\t';//制表符 这类特殊字符有: ’\r' 回车 '\n' 换行 '\'' 单引号 '\\' 反斜杠 '\"' 双引号 ... C.采用UNICOD字符表示法 语法:'\u 4位16进制表示法' 如: char c1 = '我'; 改成unicode表示法: char c1 = '\u6211'; 通过jdk提供的 native2ascii.exe命令可以把任意的中文转换成unicode字符码 ctrl + C 退出 -- 字符是一种特殊的整数。 java采用双字节编码,就意味着它可以表达 2 ^ 16 = 65536 个字符 在计算机中,要存储字符,都需要把字符转换成整数,进而成为二进制。 这就需要字符映射表,也就是码表【字符集表】 计算机中最原始的字符集是ASCII码表,不同的码表对字符的码表是不一 样的,其中,ASCII码表采用单字节编码,也就是它最多可编256个字符。 字符 码值 'a' 97 'z' 122 'A' 65 'Z' 90 '0' 48 '9' 57 中文字符集采用双字节编码,但是,为了向上兼容ASCII码值,前256 的值与ASCII码一模一样,这样就兼容了ASCII码表。 【所有主流的字符集都会无条件向上兼容ASCII码表】 中文字符集: GB2312 -> GBK 全球统一的字符集: UTF-8 [支持中文],它采用动态编码技术。 所以,当文本文件的编解码不一致时,就会产生乱码。 /******不要用记事本去存储UTF-8格式的文件。*****/ C.比较运算符 >,<,>=,<=,==,!= 注: 比较运算符的结果一定是boolean值。 如: boolean b = 5 > 3; D.逻辑运算符 && 逻辑与,两边同时成立,结果才成立。 || 逻辑或,两边同时不成立,结果才不成立。 ! 真为假,假为真 注: 逻辑运算符要求它的操作数必须是boolean类型。 如: boolean b = (5 > 3) && (5 % 3 == 0); && 和 || 是短路运算符。 E.三目运算符 ?: 语法: expr1?exper2:exper3; 当expr1成立时,则执行并返回expr2,否则,执行并返回exper3. 如: int i = 19; String str = (i % 2 == 0) ? "偶数" : "奇数"; F.位运算符 & 按位与,两边为1,结果为1,有一边为0,结果为0。 | 按位或,两边为0,结果为0,有一边为1,结果为1。 ^ 按位异或,相同为0,不同为1。 ~ 按位取反,0位1,1为0。 >> 右移位,高位补符号位。 >>> 无符号右移位,高位总是补0。 << 左移位 &=,|=,^=,~=,>>=,>>>=,<<= -- 二进制转十进制,乘幂相加法。 以整数为例,如: 二 十 10 2 11 2 10110 22 101111011 187 十进制转二进制,除2取余,直到商为0 注: 在java中,支持二、八、十、十六进制的字面量,默认下, 整数都是以十进制表达的。 如果你想用二进制表达整数,则需要以0b开头。 int i = 0b1011101;//ok 如果你想用八进制表达整数,则需要以0开头。 int i = 015;//ok,相当于十进制13 如果你想用十六进制表达整数,则需要以0x开头。 int i = 0x1F;//ok,相当于十进制的31 -- 求负数的二进制方法: 1).先算 这个负数 绝对值 减1的 二进制 2).按位取反:1111111111... 011 => 共计32位 -- 位运算口诀 清0取位要用与,某位置1可用或, 若要取反和交换,轻轻送送用异或。 这个口诀中,关键要找到掩码[mask] 比如: 1.判断一个整数的奇偶性。 //定义掩码: int mask = 0x1;//00000...0001 int i = ...; //判断 String iStr = (i & mask) == 0 ?"偶数" : "奇数"; 2.高24位不变,低8位取反 //定义掩码: int mask = 0xFF; int i = ...; //判断 String iStr = mask ^ i; 中间8位取反 //定义掩码: int mask = 0xFF000; int i = ...; //判断 String iStr = mask ^ i; 3.一个整数连续异或另一个整数两次,其值不变。(最简单的加密) 如: int a = 18;//10010 int b = 21;//10101 a ^ b ^ b 的结果将会还是 a 交换a和b: a = a ^ b;//a = a ^ b; b = a ^ b;//b = b ^ a ^ b;相当于a异或了b两次,回到b a = a ^ b;//a = a ^ b ^ a;相当于b异或了a两次,回到a2.表达式[expression] 由变量、常量、字面量与运算符组合成的合法语句。 如: int i = 9;//变量定义,也是 赋值表达式 int j = i * 2 + 1;
3.分支语句 if语句
switch语句4.循环语句 for循环 while循环 do while循环