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}
};

一、java基础补充的更多相关文章

  1. 【代码笔记】Java常识性基础补充(一)——赋值运算符、逻辑运算符、三元运算符、Scanner类、键盘输入、Random类、随机数

    为什么要进行Java常识性基础补充? 之前学习Java语言,学得很多很杂,而且是很多不同的方面插入讲解的,比如在跟班上课,自学java编程例子,java语法,过了很久,因为各种原因长时间不怎么写,有时 ...

  2. java基础概念整理综合 及补充(jdk1.8)

    2018 java基础 笔记回顾摘要 一 1,html 与 注释: <!--   -->  注释不能嵌套 代码都得有注释. 2,空格符:   3,css选择的优先级: id选择器 > ...

  3. java基础知识点补充---二维数组

    #java基础知识点补充---二维数组 首先定义一个二维数组 int[][] ns={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} }; 实现遍 ...

  4. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  5. 【JAVA面试题系列一】面试题总汇--JAVA基础部分

    JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...

  6. 微冷的雨Java基础学习手记(一)

    使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要 ...

  7. Java基础进阶整理

    Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...

  8. 【概念笔记】JAVA基础 - part2

    IT`huhiu前言录 这是续JAVA基础 - part1 链接http://www.cnblogs.com/ithuhui/p/5922067.html的. 笔记慢慢在修改和补充 JAVA里面重要的 ...

  9. JAVA面试精选【Java基础第一部分】

    这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...

随机推荐

  1. Python 应用爬虫下载酷狗音乐

    应用爬虫下载酷狗音乐 首先我们需要进入到这个界面 想要爬取这些歌曲链接,然而这个是一个假的网站,虽然单机右键进行检查能看到这些歌曲的链接,可进行爬取时,却爬取不到这些信息. 这个时候我们就应该换一种思 ...

  2. Docker小白到实战之常用命令演示,通俗易懂

    前言 上一篇大概认识了Docker,主要是从概念.架构.优点及流程方面进行阐述,并进行安装和体验: 接下来就开始进行实操学习,在演示过程中会针对关键的知识点进行归纳和总结,这里先从常用命令说起,来吧, ...

  3. SpringMVC/boot-CSRF安全方案

    1. CSRF原理与防御方案概述 一. 原理 增删改的接口参数值都有规律可循,可以被人恶意构造增删改接口 将恶意构造的增删改接口发给对应特定用户,让特定用户点击 特定用户使用自己的认证信息对该接口发起 ...

  4. NOIP 模拟 $27\; \rm 牛半仙的妹子图$

    题解 \(by\;zj\varphi\) 颜色数很少,考虑枚举颜色数. 建出来一棵最小生成树,可以证明在最小生成树上,一个点到另一个点的路径上的最大权值最小(易证,考虑 \(\rm kruskal\) ...

  5. 题解 Game

    传送门 一有「字典序最大」什么的的就懵了--这题我颓的std 首先可以发现全局最大得分很好统计,我们令它为 \(k\) 然后我们尝试构造方案,但发现无论怎么放都可能会有后效性 发现对于一个位置,可以放 ...

  6. servlet防止表单重复提交

    日常开发中,防表单重复提交是一项必须的工作 我们可以利用javascript防止表单重复提交,但是利用javascript防止表单重复提交会出现一个新的问题 因为某些用户可能会绕过script代码直接 ...

  7. WebStorm怎么设置实现自动编译less文件

    首先,需要保证电脑安装过Node.js,下载地址:https://nodejs.org/en/ 安装Node.js的时候会自动安装npm 然后,安装lessc模块 打开cmd控制台 输入下面一行npm ...

  8. QT 中的QTableWidget

  9. 1、Spark简介(Python版)

    此文为个人学习笔记如需系统学习请访问http://dblab.xmu.edu.cn/blog/1709-2/ Spark具有如下几个主要特点:  运行速度快    Spark使用先进的DAG(Dir ...

  10. HTTP状态码:3XX

    3XX状态码 含义:表明浏览器需要执行某些特殊的处理以正确的处理请求,大部分都需要进行重定向.这类状态码代表需要客户端采取进一步的操作才能完成请求.通常,这些状态码用来重定向,后续的请求地址(重定向目 ...