java常用基础(一)
Java常用基础(一)
原文写于2017-12-02
输入输出
//输入
Scanner in = new Scanner(new BufferedInputStream(System.in));
in.hasNext();
in.nextInt();
//输出
PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
out.println("Hello World");
out.flush();
随机数
Random rand = new Random(47)
47为随机数种子,随机数种子一样产生的随机数序列一样,若空则以当前时间为种子,每次产生的随机数不一样
产生[0,1)区间的小数Math.random();
进制
十六进制以0x开头
char c = 0xffff; // max char hex value
byte b = 0x7f; // max byte hex value
short s = 0x7fff; // max short hex value
如果试图将一个变量初始化为超出自身表示范围的值(无论这个值的数值形式如何),编译器都会向我们报告一条错误信息。如果超出范围,编译器会将值自动转换为int型,并告诉我们需要对这次赋值进行“窄化转型”
窄化转型
将能容纳更多信息的数据类型转换成无法容纳那么多信息的类型,有可能面临信息丢失的危险
//如浮点型转换为整形
int i = 29.7;
print(i);
//输出29,而不是30
round()
java.lang 中的四舍五入函数
double d = 29.7;
print(Math.round(d));
//将输出30
指数记数法
// 1.3e-43表示的是1.3 x 10`-43f
float f = 1.3e-43f
//编译器通常会将指数作为双精度(double)处理,在尾部加上f是告诉编译器将double 转换成float,否则会出错
按位操作符
| 操作符 | 注释 |
|---|---|
| & | 与 |
| | | 或 |
| ~ | 非 |
| &=、|=、^= | 都是合法的 |
| <<、 >>、 <<=、 >>=、 >>>= | 移位操作符 |
类型转换
只要类型比int小,(即char byte short),在运算之前这些值会自动转换成int。这也一来,最终生成的结果就是int型。如果把结果值赋值给较小的类型,就必须使用强制类型转换(既然把结果赋值给了较小的类型,就可能出现信息的丢失)。
通常,表达式中出现的最大的数据类型决定了表达式最终结果的数据类型,如果将一个float值与一个double值相乘,结果就是double;如果将一个int和一个long值相加,则结果为long。
“==” 与equals()
“==”比较基本数据类型,相同返回true不用返回false
比较引用时,如果引用指向内存中的同一对象则返回true。
equals()
public boolean equals(Object obj)
当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false。
equals()方法的本意为确定两个对象的引用是否相同,而JDK类中有一些类覆盖了oject类的equals()方法,比较规则为:如果两个对象的类型一致,并且内容一致,则返回true,这些类有:java.io.file,java.util.Date,java.lang.string,包装类(Integer,Double等)
public class EqualsTest {
public static void main(String[] args) {
String s1=new String("sss");
String s2=new String("sss");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
}
}
//————————运行结果为——————
//false
//true
由此知道,在String中equals()方法被进行了覆盖,使其意义变为比较两个对象的内容是否一致
Foreach
遍历数组并输出
double d[] = new double[10];
for(int i = 0; i < 10; i++)
d[i] = Math.random();
for (double t : d)
System.out.println(t);
for(int i : range(100))
{
if(i == 74)break;
else System.out.print(i);
}
标签
标签是后面根有冒号的标识符:
label1:
label1:
outer-iteration{
inner-iteration{
//...
break;
//...
continue;
//...
continue label1;
//...
break label1;
}
}
break中断内部迭代,回到外部迭代。
continue使执行点移回内部迭代的起始处
continue label1中断内部迭代以及外部迭代,直接转到label1处,重新开始迭代过程。
break label1也会中断所有迭代,并回到label1,但并不重新开始迭代
构造器初始化之初始化顺序
在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布于方法定义之间,它们人就会在任何方法(包括构造器)被调用之前得到初始化。例如
class Window{
Window(int marker){ print("Window(" + marker + ")"); }
}
clase House{
Window w1 = new Window(1);
House(){
print("House()");
w3 = new Window(33);
}
Window w2 = new Window(2);
void f(){ print("f()") };
Window w3 = new Window(3);
}
public class OrderOfInitialization{
public static void main(String[] args){
House h = new House();
h.f();
}
}
/* Output:
Window(1)
Window(2)
Window(3)
House()
Window(33)
f()
*/
显然定义的变量最先初始化,并且先定义的变量先初始化
instanceof
fun1 extends fun
fun1 instanceof fun //返回true
super
super 指向父类的方法
例如重写了父类的方法,又想用父类原来的方法
this
this 指向本类的方法
java常用基础(一)的更多相关文章
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
类的继承 Java只支持单继承,不允许多重继承- 一个子类只能有一个父类- 一个父类可以派生出多个子类这里写图片描述子类继承了父类,就继承了父类的方法和属性.在子类中,可以使用父类中定义的方法和属性, ...
- java常用基础知识点 (持续追加)
作为一个Java编程人,会经常用上JDK中的大量的API类库,常用的有字符串操作.集合操作.文本操作.输入输出操作.以及网络操作, 常用的包: 1. java.lang Java程序的基础类,字符串, ...
- 几款Java常用基础工具库
通用工具类(字符串.时间格式化.BeanUtils.IO) 1. commons-lang3库 1.1. org.apache.commons.lang3.StringUtils类 日常代码中,我们经 ...
- Java常用基础代码
1.加载properties文件 Properties properties = new Properties(); properties.load(Properties.class.getReso ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
- Java SE 基础:常用关键字
Java SE 基础:常用关键字 常用关键字表
- java在acm中常用基础技巧方法
java在acm中常用基础技巧方法 如果学到了新的技巧,本博客会更新~ input input-std @Frosero import java.util.*; public class Main { ...
- Java基础 —— Java常用类
Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...
- Java 常用类总结(SE基础)
本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...
随机推荐
- Linux性能测试 free命令
命 令: free功能说明:显示内存状态.语 法: free [-bkmotV][-s <间隔秒数>]补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存 ...
- Matlab随笔之判别分析
原文:Matlab随笔之判别分析 从概率论角度,判别分析是根据所给样本数据,对所给的未分类数据进行分类. 如下表,已知有t个样本数据,每个数据关于n个量化特征有一个值,又已知该样本数据的分类,据此,求 ...
- linux_crontab_定时删除
#每天2:30 删除4天前qac的原始log30 2 * * * find /home/iknow/ETL/RetlPull/retl-pull/data/qac -name qac.log.new. ...
- WPF实用指南一:在WPF窗体的边框中添加搜索框和按钮
原文:WPF实用指南一:在WPF窗体的边框中添加搜索框和按钮 在边框中加入一些元素,在应用程序的界面设计中,已经开始流行起来.特别是在浏览器(Crome,IE,Firefox,Opera)中都有应用. ...
- 通通玩blend美工(6)上——仿iPhone滚动选择器的ListBox(UI设计)
原文:通通玩blend美工(6)上--仿iPhone滚动选择器的ListBox(UI设计) 好久没更新博客了,由于项目比较紧,期间收到不少园友的短消息,感谢大家对我的支持~~. 相信各位都在自己的神机 ...
- Windows7,程序兼容助手:这个程序可能安装不正确(做注册表里设置白名单,软件自身的名字不能带setup)
Windows上有一个很奇怪的一个现象,一个exe只要名字里面带了setup\install之类的,打开exe后立即退出就会弹出下面的窗口. 解决方法: 方法一.更改exe的名字,去掉setup\in ...
- Cordova页面加载外网图片失败,Refused to load the image
原文:Cordova页面加载外网图片失败,Refused to load the image 1.使用Cordova页面加载外网图片失败,抛出异常 Refused to load the image ...
- 图像滤镜艺术---Photoshop实现Instagram之Mayfair滤镜效果
原文:图像滤镜艺术---Photoshop实现Instagram之Mayfair滤镜效果 本文介绍一下如何使用Photoshop来实现Instagram中的Mayfair滤镜的效果. 以上就是这个滤镜 ...
- 我们错过了那么多机会,怎么办(就是预见未来的能力,并且要去做、要去投入,所以要主动学习、储备、选择,要不断的思考)good
那天在IT职业咨询QQ群里聊天,提到腾讯.阿里,我说跟着这两家公司从小到大的朋友,都获得了不菲的回报,成了富翁或者财务自由了. 有群友感叹说:“是啊,我们错过了那么多机会.” 看到这句话,我心里一动, ...
- 核心思想:互联网创业十问?(大部分创业者是从学习借鉴成功者起步的,不需要把商业模式考虑完备,失败者没资格说趁着年轻...)4种失败的信号 good
著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:曹政链接:https://www.zhihu.com/question/20264499/answer/28168079来源: ...