Java

安装JDK以及配置Java运行环境

 1.JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.    2.点击AcceptLicenseAgreement,下载适合自己电脑版本的JDK.由于我的电脑是windows...

JavaScript 世界万物诞生记

来源 https://zhuanlan.zhihu.com/p/22989691   起初,什么都没有。造物主说:没有东西本身也是一种东西啊,于是就有了null: 现在我们要造点儿东西出来。但是没有原料怎么办?有一个声音说:不是有null嘛?另一个声音说:可是null代...

一张图彻底搞懂JavaScript的==运算

 来源https://zhuanlan.zhihu.com/p/21650547 PS:最后,把图改了一下,仅供娱乐:) 大家知道,==是JavaScript中比较复杂的一个运算符。它的运算规则奇怪,容易让人犯错,从而成为JavaScript中“最糟糕的特性”之一。...

javascript prototype原型链的原理

 说到prototype,就不得不先说下new的过程。我们先看看这样一段代码:<scripttype="text/javascript">varPerson=function(){};varp=newPerson();</script> 很简单的一段代码,我们来看看这个new...

浅谈javascript的原型及原型链

  这里,我们列出原型的几个概念,如下:prototype属性[[prototype]]__proto__只要创建了一个函数,就会为该函数创建一个prototype属性,指向该函数的原型对象。实例对象是不会拥有该属性的。默认情况下,该原型对象也会获得一个constructor属性,该属性包含一个指针...
代码星球·2020-08-01

JavaScript的正则表达式

  如果说这是一篇关于正则表达式的小结,我更愿意把它当做一个手册。本文的RegExp采用直接量语法表示:/pattern/attributes。attributes有三个选择,i、m和g,m(多行匹配)不常用直接省略,所以一个pattern(匹配模式)可以表示如下:varpattern=/hello...
代码星球·2020-08-01

java 多线程 8 : 线程通信

wait(): 使当前线程等待,直到其他线程调用该同步监视器notify()方法,或者notifyAll()方法来唤醒该线程。    wai()方法有三种形式,无参的一直等;带毫秒的,和带微秒的会等待指定时间后自动苏醒。    调用wait()方法的当前线程会释放该同步监视器的锁定notify(): 唤醒在同步监视器上...
代码星球·2020-08-01

java 多线程 9 : 使用Condition控制线程通信

如果程序不使用synchronized关键字来保证同步,直接使用Lock对象 ,则系统中不存在隐式的同步监视器,也就不能使用wait(),notify(),notifyAll()方法进行通信了当使用Lock对象来保证同步时,使用Condition可以让那些已经得到Lock对象无法继续执行的线程释放Lock对象...

java 多线程 7 : 死锁

两个线程互相等待对方释放同步监视器就会发生死锁publicclassA{publicsynchronizedvoidfoo(Bb){System.out.println("当前线程:"+Thread.currentThread().getName()+"进入A实例的foo方法");try{Thread.sleep(20...
代码星球·2020-08-01

java 多线程 6 : 同步锁(Lock)

java5开始可以显示定义同步锁对象来实现同步,这种机制下,同步锁由对象充当Lock比同步代码块和同步方法更加灵活在实现线程安全的机制中,比较常用的是ReentrantLock(可重入锁)。使用该Lock对象可以显示的加锁,释放锁ReentrantLock代码格式如下:classX{//定义锁对象privatefina...
代码星球·2020-08-01

java 多线程 5 : 同步方法

使用synchronized关键字来修饰某个方法,该方法被称为同步方法。对于synchronized修饰的实例方法(非static方法),无需显示指定同步监视器,同步方法的同步监视器是this,也就是调用该方法的对象。通过同步方法可以非常方便的实现线程安全的类,线程安全的类具有如下特征:  该类的对象可以被多个线程对象...
代码星球·2020-08-01

java 多线程 3 : 控制线程

join线程:    publicclassJoinThreadextendsThread{publicJoinThread(Stringname){super(name);}publicvoidrun(){for(inti=0;i<100;i++){System.out.println(getName()+""...
代码星球·2020-08-01

java 多线程 4 : 同步代码块

线程安全问题:多线程访问同一数据,容易出现线程安全问题经典问题:银行取钱,1.用户名密码登陆,2.输入取款金额,3.判断账户余额是否大于取款金额,4.如果大于,取款成功,如果小于,取款失败。publicclassAccount{privateStringaccount;//账号privatedoublebalance;...
代码星球·2020-08-01

java 多线程 2 : 线程的生命周期

线程得生命周期:  当线程被创建并且启动之后,并不是一启动就进入执行状态,也不是一直处于执行状态,在线程得生命周期中,他要经过创建(New),就绪(Runnable),运行(Running),阻塞(Blocked),和死亡(Dead)。线程启动以后,不能一直霸占CPU独自运行,CPU需  要在多条线程之间切换,线程状态...
代码星球·2020-08-01

java 多线程 1 : 基础

进程和线程:  一个程序运行后至少有一个进程,一个进程里面可以包含多个线程,但是至少要包含一个线程。线程的创建和启动:方式1:继承Thread类创建线程类,步骤     1.定义Thread类的子类,重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此run()方法也被称为线程执行体   ...
代码星球·2020-08-01