书写注释是一个非常好的习惯。
Java的注释有三种:单行注释、多行注释、文档注释。
文档注释和JavaDoc联合使用。
Java所有组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。Java就是一种强类型语言。
弱类型语言
Java的数据类型分为两大类:基本类型(primitive type)和引用类型(reference type),基本类型有8种,整数类型4种,浮点类型2种,字符类型1种,boolean一种。
long类型后面加一个L或者l
float类型要在数字后面加个F
字符串String不是关键字,是类,是引用数据类型。
电脑的32位和64位的区别是什么?
32位操作系统只能使用32位的操作系统,而64位操作系统不但能装32位操作系统也能装64位操作系统。内存中寻址能力,64位最多可以支持128G的内存,而32位的最多只有4G的内存。64位的支持软件更多。
整数拓展:进制表示方法 二进制0b 十进制 八进制0 十六进制0x
浮点数拓展:float f = 0.1f和double f = 1.0/10不相等
布尔值扩展:使用变量直接判断对错if(flag)
//float 有限 离散 舍入误差 大约 接近但不等于 //最好完全避免使用浮点数进行比较 //BigDecimal类 数学工具类 float f = 0.1f;//0.1 double d = 1.0/10;//0.1 system.out.println(f == d); float d1 = 23131312312312313f; float d1 = d1 + 1; system.out.println(d1 == d2);
false true
所有的字符本质还是数字。
char涉及到一个编码问题,Unicode编码可以处理各种语言文字,占2个字节,65536,最早的excel有65536行。
从U0000~UFFFF
//强制类型转换 char c3 = '\u0061'; system.out.println(c3); //转义字符 //\t 制表符 //\n 换行符 system.out.println("Hello\nWo\trld"); //思考题 String sa = new String("hello world"); String sb = new String("hello world"); system.out.println(sa == sb); String sc = "hello world"; String sd = "hello world"; system.out.println(sc == sd); //对象 从内存分析
a Hello Wo rld false true
包含很多转义字符。
由于Java是强类型语言,所以进行有些运算的时候需要用到类型转换。
运算中,不同类型的数据先转换为同一类型,然后进行运算。
由低到高优先级:byte→short→int→long→float→double。
优先级由高到低强制转换,由低到高自动转换。
注意点:
内存溢出:
int i = 128; byte b = (byte)i; system.out.println(i); system.out.println(b);
128 -128
精度问题:浮点数转为整数丢失小数点后的数。
常见问题:
public class Demo01 { public static void main(String[] args) { //操作比较大的数的时候,注意溢出问题。 //JDK新特性,数字之间可以用下划线分隔 int money = 10_0000_0000; int years = 20; int total = money * years;//-1474836480,计算的时候溢出了 long total2 = money * years;//默认是int,转换之前已经存在问题 long total3 = money * (long)years;//先把一个数转换为long System.out.println(total3); } }
20000000000
Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域。
public class Demo08 { //属性:变量 //代码块 static{ } //实例变量:从属于对象,如果不自行初始化,这个额类型的默认值 0 0.0 布尔值默认false 字符串为null String name; int age; char ah; //类变量 static static double salary = 2500; //main方法 public static void main(String[] args) { //局部变量:必须声明和初始化值 int i = 10; System.out.println(i); //变量类型 变量名字 = new Demo08(); Demo08 demo08 = new Demo08(); System.out.println(demo08.age); System.out.println(demo08.name); System.out.println((int)demo08.ah); //类变量 static System.out.println(salary); } //其他方法 public void add(){ } }
常量可以理解成一种特殊的变量,它的值被设定以后,在程序运行过程中不允许改变。
常量名字一般用大写字符。
public class Demo09 { //修饰符,不存在先后顺序 static final double PI = 3.1415; // final static double PI = 3.1415; public static void main(String[] args) { System.out.println(PI); } }
变量命名规范:
package operator; public class Demo01 { public static void main(String[] args) { //二元运算符 int a = 10; int b = 20; int c = 25; int d = 25; System.out.println(a + b); System.out.println(a - b); System.out.println(a * b); System.out.println(a / (double)b); } }
package operator; public class Demo02 { public static void main(String[] args) { long a = 165135165156L; int b = 123; short c = 10; byte d = 8; System.out.println(a + b + c + d);//long System.out.println(b + c + d);//int System.out.println(c + d);//int } }
package operator; public class Demo03 { public static void main(String[] args) { //关系运算符结果:正确,错误 布尔值 int a = 10; int b = 20; System.out.println(a > b); System.out.println(a < b); System.out.println(a == b); System.out.println(a != b); int c = 21; System.out.println(c % a);//取余 } }
package operator; public class Demo04 { public static void main(String[] args) { //++ -- 自增 自减 一元运算符 //理解++a和a++ 的区别 //幂运算 2^3 2*2*2 = 8 很多运算我们会使用运算类来操作 double pow = Math.pow(2,3); System.out.println(pow); } }
package operator; public class Demo05 { public static void main(String[] args) { // 与 或 非 boolean a = true; boolean b = false; System.out.println(b&&a); System.out.println(b||a); System.out.println(!(b&&a)); //短路运算(实验) int c = 5; boolean d = (c < 4)&&(c++ < 4); System.out.println(d); System.out.println(c); } }
package operator; public class Demo07 { public static void main(String[] args) { int a = 10; int b = 20; a += b;//a = a + b; a -= b;//a = a - b; System.out.println(a); //字符串连接符 + ,String System.out.println(""+ a + b); System.out.println(a + b + ""); } }
package operator; public class Demo08 { public static void main(String[] args) { //x ? y : z //如果x为true,则结果为y,否则结果为z int score = 50; String type = score < 60 ? "不及格":"及格"; System.out.println(type); //if } }
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:
package pkg1[. pkg2[.pkg3...]];
一般利用公司域名倒置作为包名;
为了能够使用某个包的成员,我们需要在Java程序中明确导入该包,使用“import”可以完成此功能。
import package1[.pakage2...].(classname|);
import a.b.
package com.maynerd.operator; /** * @author 13781 * @version 1.0 * @since 1.8 * */ public class Doc { String name; /** * @param name * @return * @throws Exception */ public String test (String name)throws Exception{ return name; } /** * * @param args */ public static void main(String[] args) { } }
之后通过命令行 javadoc 参数 Java文件。