Java程序结构 public class 类名 { public static void main(String[] args){ //……语句 } } 备注: 1、类名必须和文件名一致 2、java语言严格区分大小写 3、每一条语句都必须以分号结束 4、每一条语句单独占一行 5、命名要按照驼峰式命名(XiWangDaJiaXueHao JAVA) 类名首字母必须大写 变量名开头必小写 6、命名要见名知意 Eclipse工具的使用:(Java c语言 php pyson) 1、创建项目 ①new>project>java project {next} > 命名(demo01)> {next> finish} ②src(new class) > 命名(Helloworld) {命名中不能有空格} 2、创建类并编写源代码 public class 类名{ public static void main(String[] args){ //…Java语句 } } 3、编译源代码 右键空白(Run As) 4、运行程序 ①.保存相当于执行Java命令 println() print("\n") \n:将光标移动到下一行的第一格 \t:将光标移到下一个水平制表位置
1、 单行注释 //aaaaaaaaaaa 2、 多行注释 /* / 3、 文档注释 /* */ public class Demo {
/**
* 这是程序执行的入口
* @param args
*/
public static void main(String[] args) {
//System.out.println("aaaaaaaaaaa");
System.out.println("aaaaaaaaaaa");
System.out.println("aaaaaaaaaaa");
/* System.out.println(“aaaaaaaaaaa”); System.out.println(“aaaaaaaaaaa”); System.out.println(“aaaaaaaaaaa”); System.out.println(“aaaaaaaaaaa”);*/ } } 任何一门语言都是由各种元素组成的: 关键字 数据类型 变量 表达式 运算符 语句 流程控件
某种语言已经为其赋予了特殊含义的的英文单词。
abstract抽象 | assert维护 | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | Const常量 |
continue | default违约 | do | double | else |
enum | extends扩充 | final最终 | finally | float |
for | goto | if | implements工具 | import输入 |
instanceof运算符 | int | interface交界面 | long | Native本国 |
new | package | private | protected | public |
return | strictfp严格 | short | static | super极好的 |
switch | synchronized同步/线程 | this | throw抛 | throws |
transient短暂的 | try | void空的 | volatile挥发 | while |
保留字:goto const
默认: 整形int 浮点型double
避免相似: L与1避免相似
范围转换: Int到long:4~8L Double到float:8到4f 15 6
特别范围: Char0~2^16
Integer是其包装类,注意是一个类。 提供包装类的原因 类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。
核心: Integer Double 通过.toString转字符串 .valueOf(“12”); .parseInt(“12”);(字符串通过上+此——转化成需要字符) 特殊String a = new integer(12).toString();
例: 1integer转其他 2(“”)string转其他.valueOf(“12”); .parseInt(“12”); 3(任意.valueOf “” ,true)转换成 特殊 4new类。Tostring 5《包装类》 int a=0; String result=Integer.toString(a);
//通过包装类来实现转化的 int num=Integer.valueOf(“12”); int num2=Integer.parseInt(“12”);
double num3=Double.valueOf(“12.2”); double num4=Double.parseDouble(“12.2”); //其他的类似。通过基本数据类型的包装来的valueOf和parseXX来实现String转为XX
String a=String.valueOf(“1234”);//这里括号中几乎可以是任何类型 String b=String.valueOf(true); 特殊 new String c=new Integer(12).toString();//通过new包装类的toString()也可以 String d=new Double(2.3).toString();
用泛型 List nums; 这里<>需要类。如果你用int。它会报错的
基本数据类型表
类型名称 | 长度(占计算机空间) | 表示数值的范围 | 举例 | |
---|---|---|---|---|
boolean | 1bit | true false | ||
整型数值 | byte | 1个字节 | -128~127 -27 ~ 27-1 | |
short | 2byte | -32768~32767 -215 ~ 215-1 3万 | ||
int | 4byte | -231~ 231-1 | ||
long | 8byte | -263 ~ 263-1 | ||
浮点数值 | float | 4byte 个不含. 注意(8科学计数法) | 有自己的算法,远远大于2N | |
double | 8byte 不含. 注意(17科学计数法) | |||
char | 2byte | 0 ~ 216-1 一对单引号括起来的单个字符 | 都是正数 |
注意:lfd
\1. 对于整形数据,java默认是int****类型。
\2. 对于整形数据,在正确的范围之内java会自动对其进行类型转换。
\3. 对于带小数点的数,java默认它是double****类型的。
\4. 在正确的范围值内,字符类型和整形类型之间可以相互转换。
\5. 1个字节128,由于原码,反码(+0,-0),补码(10000000 代表-128 ,0代表0~127)
变量是内存中一串连续空间的名称
数据类型 变量名
1 数据类型 变量名;
变量名 = 值 2 数据类型 变量名 = 值 注意:临界值范围 byte short int long 整形范围内可正常书写
// byte byte11 = (byte)0; //强制类型转换
short 强制类型转换 char ““ 或者 ‘’中不能为空 只能写一个字符 特殊取 float f4 = 2147483648L; 字符 和 整数大类型转换 示例: public class ZHUSHI { public static void main(String[] args) { // boolean // 先定义变量,再赋值 boolean b1; b1 = false; // 定义变量并赋值 boolean b2 = true; System.out.println("-----------------------");
// byte byte byte1 = -128; byte byte2 = 127; // 强制类型转换 不要越界否则产生随机数 byte byte3 = (byte)127; System.out.println("-----------------------");
// short short s1 = -32768; short s2 = 32767; System.out.println("-----------------------");
// int int i1 = 2147483647; int i2 = -2147483648; System.out.println("-----------------------");
// long long l1 = -9223372036854775808L; long l2 = 9223372036854775807L; System.out.println("-----------------------");
// float // 未转换 接整形 第8位出现四舍五入 共9位 由于L证明有效数字6位精准 不定 科学计数未知 float f1 = 2147483647; float f2 = -2147483648; float f3 = 9223372036854775807L;
/* float f3 = 0.0; 整形可付给浮点数 小范围给大范围 小数默认doublue 给 float 需要类型转换 */ System.out.println(f1); System.out.println(f2); System.out.println(f3);
// 转换类型f || F float f4 = 2147483692.0f; float f5 = 92233720368547758071234561F; System.out.println(f4); System.out.println(f5); System.out.println("-----------------------");
// double // 未转换 long下17位精准到18位开始估读 double d1 = 9223372036854775807L; double d2 = -9223372036854775808L;; double d3 = 2147483647;
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
// 类型转换 double d4 = 13543153486846846846864684846434158537d; double d5 = 0.0; double d6 = 3271947123498321741239847321984712.0; System.out.println(d4); System.out.println(d5); System.out.println(d6); System.out.println("-----------------------");
// char //单引号内无内容char c1 = ‘’; char c1= ’ '; char c2 = ‘a’; //char c3 = ‘abc’;
char c4 = 2;
char c5 = '0';
//不可用“” 字符‘’
System.out.println("aaaaaaaaaaaaaa");
System.out.println(c4);
System.out.println(c5);
System.out.println("--------字符变int-------------");
int i7 = 'a';
System.out.println(i7);
int i8 = '?';
System.out.println(i8);
}
}
Int a = 89 (将数字89赋给int类型的a)
= *= a = b a = ab /= a /= b a = a/b %= a %= b a = a%b public static void main(String[] args) { int a = 89;// 将数字89赋给int类型的变量a int b = 4; a = b; // a= ab; System.out.println(a);
a = 89;
a /= b; // a =a/b;
System.out.println(a);
a = 89;
a %= b; // a = a%b;
System.out.println(a);
}
比较运算符结果是boolean值
(大于) <(小于) ==(等于) >=(大于等于) <=(小于等于)!=(不等于)
比较运算符的结果是boolean值
< == >= <= != public static void main(String[] args) { int a = 4; int b = 12; System.out.println(a > b); System.out.println(a < b); System.out.println(a == b); System.out.println(a >= b); System.out.println(a <= b); System.out.println(a != b); }
(只能作用于变量) 谁在前面先用谁
++ –
++ a++ a= a+1 – a-- a= a-1 只能作用于变量
public static void main(String[] args) {
int a =4;
a ++;
System.out.println(a);
a --;
System.out.println(a);
++a;
System.out.println(a);
–a;
System.out.println(a);
}
谁在前面先计算谁
public static void main(String[] args) {
int a = 3;
int b = 8;
System.out.println(a++);
System.out.println(a);
System.out.println(++b);
System.out.println(b);
}
只有Boolean值/表达式才能参与逻辑运算 && 与 & 参考串联电路 || 或 | 参考并联电路 ! 非 && || 起短路作用 短路:如果已经明确结果了,就不再计算后面的式子
只有boolean值/boolean表达式才能参与逻辑运算 逻辑运算的结果是boolean值 && & 参考串连电路
|| | 参考并连电路
public static void main(String[] args) {
boolean res1 = true && true;
System.out.println(res1);
boolean res2 = true && false;
System.out.println(res2);
boolean res3 = true & true;
System.out.println(res3);
boolean res4 = false & true;
System.out.println(res4);
boolean res5 = true || true;
System.out.println(res5);
boolean res6 = false || true;
System.out.println(res6);
boolean res7 = true | true;
System.out.println(res7);
boolean res8 = true | false;
System.out.println(res8);
boolean res9 = !true;
System.out.println(res9);
boolean res10 = !false;
System.out.println(res10);
}
public static void main(String[] args) {
boolean b1 = true;
boolean b2 = true;
boolean res = b1 && b2;
System.out.println(res);
boolean res2 = (3 > 5) && (7 < 6);
System.out.println(res2);
}
&& || 具有短路作用 短路:如果结果已经明确了,就不再计算后面的式子
public static void main(String[] args) {
int a = 3;
int b = 8;
boolean res = (a++ > 3) && (–b< 8);
System.out.println(res);
System.out.println(a);
System.out.println(b);
}
public static void main(String[] args) {
int a = 3;
int b = 8;
boolean res = (a++ > 3) & (--b< 8);
System.out.println(res);
System.out.println(a);
System.out.println(b);
}
public static void main(String[] args) {
int a = 3;
int b = 8;
boolean res = (a++ > 3) || (--b< 8);
System.out.println(res);
System.out.println(a);
System.out.println(b);
}
public static void main(String[] args) {
int a = 3;
int b = 8;
boolean res = (a++ > 3) | (--b< 8);
System.out.println(res);
System.out.println(a);
System.out.println(b);
}
扩大或缩小为原来的2的N次幂倍 采用位运算,可以快速的计算2的多少次方
<< 向左移位,扩大
向右移位,缩小(注意从低位开始减少, >>>无符号的高位都加0)
public static void main(String[] args) {
System.out.println(1<<4);
System.out.println(16>>3);
System.out.println(129>>5);
//129/2^5=129/32=
}