一、java基础补充
1.java执行流程
- 源文件由编译器编译成字节码(ByteCode),也就是.class文件
- 字节码由java虚拟机解释运行
通过命令行操作java程序:
javac test.java
java test
使用通配符编译:
javac test*.java
带有test前缀的源文件都会被编译
2.八大基本类型
2.1存储特性
整型
类型 存储 int 4字节 short 2字节 long 8字节 byte 1字节 长整型会有l或L为后缀,如5000000L
十六进制前缀0x或0X
二进制前缀0b或0B
浮点类型
类型 存储 float 4字节 double 8字节 float后缀f或F,没有后缀默认为double
三个特殊浮点数
Double.POSITIVE_INFINITY:正无穷
Double.NEGATIVE_INFINITY:负无穷
Double.NaN:非数值
不能通过==判等,只能通过静态方法Double.isNaN()
char类型
表示单个字符,可表示为十六进制值
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运算符
三元运算符
x<y?x:y
//若x<y,取x,否则取y
位运算
与:&
或:|
非:~
异或:^
左移:<<
右移,高位补符号位:>>
高位补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文件输入输出
用Scanner读取文件
Scanner in = new Scanner(Path.of("123.txt"),StandardCharsets.UTF_8); //指定路径和字符集
写入文件
需要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基础补充的更多相关文章
- 【代码笔记】Java常识性基础补充(一)——赋值运算符、逻辑运算符、三元运算符、Scanner类、键盘输入、Random类、随机数
为什么要进行Java常识性基础补充? 之前学习Java语言,学得很多很杂,而且是很多不同的方面插入讲解的,比如在跟班上课,自学java编程例子,java语法,过了很久,因为各种原因长时间不怎么写,有时 ...
- java基础概念整理综合 及补充(jdk1.8)
2018 java基础 笔记回顾摘要 一 1,html 与 注释: <!-- --> 注释不能嵌套 代码都得有注释. 2,空格符: 3,css选择的优先级: id选择器 > ...
- java基础知识点补充---二维数组
#java基础知识点补充---二维数组 首先定义一个二维数组 int[][] ns={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} }; 实现遍 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 【JAVA面试题系列一】面试题总汇--JAVA基础部分
JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...
- 微冷的雨Java基础学习手记(一)
使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要 ...
- Java基础进阶整理
Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...
- 【概念笔记】JAVA基础 - part2
IT`huhiu前言录 这是续JAVA基础 - part1 链接http://www.cnblogs.com/ithuhui/p/5922067.html的. 笔记慢慢在修改和补充 JAVA里面重要的 ...
- JAVA面试精选【Java基础第一部分】
这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...
随机推荐
- 为VIM添加Python扩展
VIM的自带的脚本功能很强,但只能用在VIM自己上,如果让它支持Python脚本,那简直就无敌了,这个想法当然不是我想出来的,应该说英雄所见略同,于是乎vim7.2就内建了对python2.4的支持, ...
- Spring MVC+javamail实现邮件发送
Spring MVC+javamail实现邮件发送 开启邮箱的POP3/SMTP服务(这里以QQ邮箱举例) 设置 --> 账户 -- > 开启POP3/STMP服务,然后得到一个授权码. ...
- HashMap底层实现-基础
1.数据结构 1.7 数组+链表,键值对是以Entry内部类的数组存放的.键计算得到哈希值是该数组的下标.又称桶数组当存在哈希冲突时,会通过Entry类内部的成员变量 Entry<k,v> ...
- 如何发送一个http请求—apipost
API界面功能布局 API请求参数 Header 参数 你可以设置或者导入 Header 参数,cookie也在Header进行设置 Query 参数 Query 支持构造URL参数,同时支持 RES ...
- CF上部分树形DP练习题
本次 5 道题均来自Codeforce 关于树形DP的算法讲解:Here 791D. Bear and Tree Jumps 如果小熊每次能跳跃的距离为1,那么问题变为求树上任意两点之间距离之和. 对 ...
- sqli-labs lesson 24-25a
less 24: 注意一开始登录后出现无法返回或者跳转页面的话是因为一开始解压sqli-labs文件时出现 logged-in.php文件不正确同名文件有问题. 直接重新解压一边全部替换掉所有文件即可 ...
- noip模拟44[我想我以后会碰见计数题就溜走的]
noip模拟44 solutions 这一场抱零的也忒多了,我也只有45pts 据说好像是把几套题里面最难的收拾出来让我们考得 好惨烈啊,这次的考试我只有第一题骗了40pts,其他都抱零了 T1 Em ...
- 轻量级状态管理库Pinia试吃
最近连续看了几个GitHub上的开源项目,里面都用到了 Pinia 这个状态管理库,于是研究了一下,发现确实是个好东西!那么,Pinia 的特点: 轻量化 -- Pinia 体积约1KB,十分轻巧 ...
- docker ubuntu中文乱码
docker ubuntu18.04 使用cat查看中文正常,使用vim查看中文乱码. 解决此问题需要修改"/etc/profile"文件. 1.修改前查看本地使用的语言环境: l ...
- .net core api 对于FromBody的参数验证
前言 在framework的mvc中,经常会使用 Model.State . ModelState.IsValid 配合着特性进行参数验证,通过这种方式可以降低controller的复杂度,使用方便. ...