1.java执行流程

  1. 源文件由编译器编译成字节码(ByteCode),也就是.class文件
  2. 字节码由java虚拟机解释运行

通过命令行操作java程序:

javac test.java
java test

使用通配符编译:

javac test*.java

带有test前缀的源文件都会被编译

2.八大基本类型

2.1存储特性

  1. 整型

    类型 存储
    int 4字节
    short 2字节
    long 8字节
    byte 1字节

    长整型会有l或L为后缀,如5000000L

    十六进制前缀0x或0X

    二进制前缀0b或0B

  2. 浮点类型

    类型 存储
    float 4字节
    double 8字节

    float后缀f或F,没有后缀默认为double

    • 三个特殊浮点数

      Double.POSITIVE_INFINITY:正无穷

      Double.NEGATIVE_INFINITY:负无穷

      Double.NaN:非数值

      不能通过==判等,只能通过静态方法Double.isNaN()

  3. char类型

    表示单个字符,可表示为十六进制值

  4. boolean类型

    只有两个值:true,false

    不能与整型相互转换

2.2类型转换

小类型转换为大类型,整型转浮点

例如二元运算时,有double类型优先转换double,否则转换float,再否则...

3.变量

从java 10开始,出现了var关键字,可通过变量值自动识别变量类型

注意:只能是方法中的局部变量

var a=12;			//a is an int
var str="hhhh"; //str is a String

3.1常量

使用final关键字

final:不允许赋值之后再修改

static final:可以在多个地方直接引用

3.2枚举类型

定义一个集合

enum Size{big,small};		//定义枚举类型Size
Size s=Size.big; //为枚举变量赋值

枚举类型只能赋集合中的值或者null

3.3运算符

  1. 三元运算符

    x<y?x:y
    //若x<y,取x,否则取y
  2. 位运算

    与:&
    或:|
    非:~
    异或:^
    左移:<<
    右移,高位补符号位:>>
    高位补0右移:>>>

    位运算,顾名思义就是把数值转换为二进制按位进行操作

4.字符串

4.1字串

String str0="Hello";
String str1=str0.substring(0,3);//str1="Hel"

4.2拼接

通过+进行拼接字符串

4.3不可变字符串

String对象是不可变的

所谓的修改String对象实际上是new了一个新的String对象并指向他

4.4检查字符串是否相等

使用.euqals()判等

"Hello".equals(str)

4.5空串与null

空串是长度为0的串,“”

空串并非null,null是未被初始化的串

4.6码点

Java字符串由char序列组成

char是一个UTF-16的代码单元,表示Unicode码点

问题:有的Unicode字符需要不止一个代码单元表示

相关方法:CodePoint

4.6高效构建字符串

StringBuilder类

为何高效:避免了每次修改都new一个新的String对象,修改都是再容器里进行,只有最后生成时才new一个字符串

常用方法:

builder.append();//追加字符串
String str = builder.toString();//生成字符串

5.输入输出

5.1输入

标准输入流:System.in

首先需要一个Scanner

Scanner in = new Scanner(System.in);
String name = in.nextLine(); //读取一行

几种常用方法区别:

nextLine();	//遇到回车结束
next(); //遇到空格结束
nextInt(); //读取整数
hasNext(); //检测是否还有输入

5.2输出

格式化输出,可以用占位符替换输出

相应的占位符要用时查表

5.3文件输入输出

  1. 用Scanner读取文件

    Scanner in = new Scanner(Path.of("123.txt"),StandardCharsets.UTF_8); //指定路径和字符集
  2. 写入文件

    需要PrintWriter对象

    PrintWriter out = new PrintWriter("123.txt",StandardCharsets.UTF_8);

6.数组

6.1一维数组

//以下几种创建都是可以的
int[] a = new int[100];
int a = {1,2,3};
int a = {1,2,3,};

可以用以下方法拷贝

int a = Arrays.copyOf(b,b.length);

可以通过foreach语法遍历

for(int b : a){
...
}//b会遍历a

6.2多维数组

Java没有真正意义上的多维数组,实际上只有数组的数组

所有数组可以是不规则的

//创建方式
int[][] two = new int[100][50];
int[][] two = {
{1,2,3},
{4,5,6,7}
};

最新文章

  1. Eclipse导入项目出现红色叹号的解决方法
  2. 转:C# DataGridView控件清空数据出错解决方法
  3. Ios开发之定位CLLocationManager
  4. linux rm 命令
  5. 用paint 计算字符串的像素宽度
  6. 【转】Oracle中dual表的用途介绍
  7. 第一次碰到try-except(core python programming 2nd Edition 3.6)
  8. Echarts数据图表插件--开源、大气、强大
  9. Eclipse rap 富客户端开发总结(11) : rcp/rap与spring ibatis集成
  10. switch变种玩法
  11. HTML—xhtml和html5
  12. 【分布式搜索引擎】Elasticsearch如何部署以及优化查询性能
  13. ubuntu安装anaconda后,终端输入conda,出现未找到命令
  14. 使用WireShark分析使用RedisTemplate取不到值的问题
  15. 关于Excel中的行列转换
  16. Python基础学习(二)
  17. Building LinkedIn’s Real-time Activity Data Pipeline
  18. less常见的操作
  19. eaccelerator详解
  20. 解决h5py的FutureWarning问题

热门文章

  1. Kong网关安装之Docker版(2)
  2. Java多线程间的数据共享
  3. 为VIM添加Python扩展
  4. 用Autohotkey让Kitty命令行变得更好用
  5. Linux的磁盘管理和文件系统
  6. 整理自己部署项目需要使用的Linux命令
  7. selenium处理:您的连接不是私密连接的网站(https ssl 证书)
  8. P5038 奇怪的游戏
  9. vlc播放器设置开机自动全屏播放网络视频流
  10. WPF设计自定义控件