Java常用基础(一)

随机数

Random rand =  new Random(47)
47为随机数种子,随机数种子一样产生的随机数序列一样,
若空则以当前时间为种子,每次产生的随机数不一样

产生[0,1)区间的小数Math.random();

输入输出

//输入
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();

进制

十六进制以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 指向本类的方法

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,577评论 18 399
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,254评论 0 16
  • 一 当从徒峭崖头狠狠抛下你那一刻我的爱已望眼欲穿你毛茸茸的羽啊还带着乳臭未干的味道 你踉踉跄跄跌跌撞撞打着转的一步...
    格外芬芳_60c8阅读 596评论 4 18
  • 墙上有一道裂缝 还没来得及粉刷 和我一起笑着迎客 客人来了好几拨 他们兴致勃勃的讨论着各自的衣食住行 我的生活侥幸...
    倩何人换取阅读 233评论 0 3