1、数据类型
整数类型:
byte 占 1 个字节范围:-128~127
short 占2个字节范围:-32768~32767 (短整型)
int 占4个字节范围:-2147483648~2147483647
long 占8个字节范围:-9223372936854775808~9223372936854775807
浮点型:
float 占4个字节
double 占8个字节
字符类型:
char 占2个字节
Boolean类型:
占1个字节,其值只有true和false
2、三元运算符
int a = 4;
String name = a == 4 ? "chen" :"123";
System.out.println(name);
3、javaDoc生成文档
javaDoc 命令是用来生成自己的API文档的
参数信息:
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
命令行运行:javadoc -encoding UTF-8 -charset UTF-8 .\doc.java
以上会默认在当前目录生成一堆内容,其中index.html里面就会详细记载当前接口内容。
4、Scanner用户交互
基本语法:
import java.util.Scanner;
Scanner s = new Scanner(System.in);
//通过 Scanner 类的 next() 和 nextLine() 方法获取输入的字符串,在读取前我们一般需要使用 hasNext() 与 HasNextLine() 判断是否还有输入的数据。
-
next():
- 1、一定要读取到有效字符后才能结束输入
- 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉
- 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- 4、next() 不能得到带有空格的字符串
-
nextLine():
- 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- 2、可以得到空白。
package Demos_scanner;
import java.util.Scanner;
import java.util.concurrent.TransferQueue;
public class demo1 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("开始:");
String a1 = s.next();
System.out.println("a1>"+a1);
String sttr = s.next();
System.out.println("用户输入的内容:"+sttr);
while (s.hasNext()){
String ddd = s.next();
System.out.println("客户输入的下一行内容:"+ddd);
if ("end".equals(ddd)){
break;
}
}
// 以上方法 用户输入以空格为分割,下面使用nextLine
while (s.hasNextLine()){
String li = s.nextLine();
System.out.println("nextLine 内容:"+li);
if ("end".equals(li)){
break;
}
}
System.out.println("scanner的其他用法");
// scanner 的其他用法
if (s.hasNextInt()){
int i = s.nextInt();
System.out.println("输入的整数:"+i);
}else if (s.hasNextFloat()){
float f = s.nextFloat();
System.out.println("输入的浮点数:"+f);
}else {
System.out.println("你输入的是个啥?");
}
// 关闭io流
s.close();
}
}
5、流程控制
DoWhile:
// do...while 循环和 while 循环相似,不同的是,do...while 循环至少会执行一次。
public static void main(String[] args) {
int i = 1;
int sum = 0;
do {
sum += i;
i++;
}while (false);
System.out.println(sum);
}
// 上面的结果是1,说明,while 的条件不管是否成立,do 里面的内容最少会被执行一次。
For 循环:
// 这个是其中一种方式,叫增强for循环,主要用来遍历数组.
public static void main(String[] args) {
String[] names = new String[]{"123","defs","ffsdfs"};
System.out.println(Arrays.toString(names));
for (String name:names){
System.out.println("name>"+name);
}
}
关键字:
- break 结束循环
- continue 跳出当前循环,进入下一个循环
- goto ...
6、方法
- 方法设计的原则:方法就是实现某个功能的语句块的集合,设计方法的时候,最好保持方法的原子性。
- 方法的命名规则:首字母小写,驼峰体:chekFunction
- 类的命名:首字母大写。
重载: 重载就是在一个类中,有相同的函数名称,但形参不同的函数。
- 方法名必须相同
- 参数必须不同或参数的位置不同
- 返回值可以相同也可以不同。
如果要运行一个java文件,一定要找到包的路径:java.com.Demos.method.Demo
7、可变参数
- jdk1.5开始,Java支持传递同类型的可变参数给一个方法。
- 在方法声明中,在指定参数类型后加一个省略号(...)
- 一个方法只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
package Demos_func;
public class Demo1 {
public static void main(String[] args) {
Demo1 dd = new Demo1();
dd.printaaa(11,"dsfaf","fsfsdfsd","sdgdgadfdsf");
}
public void printaaa(int a,String... names){
System.out.println("a>"+a);
for (String x:names){
System.out.println(">>"+x);
}
}
}
8、堆栈方法区
堆: 存放值
- 存放 new 的对象和数组
- 可以被所有的线程共享,不会存放别的对象引用
栈: 存放变量
- 存放基本变量类型(会包含这个基本类型的具体数值)
- 引用对象的变量(会存放这个引用在堆里面的具体地址)
方法区(实际也是堆):
- 可以被所有的线程共享
- 包含了所有的class 和 static 变量
9、数组
- 其长度是确定的,一旦被创建,大小就是不可改变。
- 其元素必须是相同类型,不允许出现混合类型
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型
- 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量;
- 数组本身就是对象,Java中的对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
数组声明与创建:
package Demos_array;
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
// 除了基本的8大类型,其他都是引用。
// 静态初始化:创建 + 赋值
int[] nums = {1,2,3,4,5,6,7};
// 动态初始化:包含默认初始化
int[] nums2 = new int[5]; // 声明一个整型数组,长度为5,默认每个元素是0,通过下标修改元素。
nums2[0] = 1;
System.out.println(Arrays.toString(nums2));
System.out.println("============================");
String[] names = new String[5]; // 声明一个整型数组,长度为5,默认每个元素是 null,通过下标修改元素。
System.out.println(Arrays.toString(names));
Object[] names2 = {new Demo1(),new Demo1()};
System.out.println(Arrays.toString(names2));
}
}
10、时间戳
在Java程序中,时间戳通常是用long表示的毫秒数,即:
long t = 1574208900123L;
转换成北京时间就是2019-11-20T8:15:00.123。要获取当前时间戳,可以使用System.currentTimeMillis(),这是Java程序获取时间戳最常用的方法。
注意ISO 8601规定的日期和时间分隔符是T。标准格式如下:
- 日期:yyyy-MM-dd
- 时间:HH:mm:ss
- 带毫秒的时间:HH:mm:ss.SSS
- 日期和时间:yyyy-MM-dd’T’HH:mm:ss
- 带毫秒的日期和时间:yyyy-MM-dd’T’HH:mm:ss.SSS