java最牛逼的两行代码 java输入两行数

解释两行代码,java,详细一点,谢谢第一行, scanner对象是java API的一个接收控制台输入的对象,我们可以用这个类来回去字符串 数字 字符等 具体类型是根据调用的是next() or nextInt()等方法来决定返回的数据类型 ,此处返回的字符串数据. String str我想大家都很清楚是申明一个字符串str变量 并给它赋值,这里的值是从控制台输入得到的.
第二行 从最外面来看 就是一个系统的控制台输出.而输出的内容在这里是true 或者false;
对于里面的表达式, str.matches, 实际上就是调用了字符串对象string里面的内置方法matches,这个方法是一个匹配查询判断, 而里面的参数则是需要匹配的格式定义, 这里用的是一种叫正则表达式,表示的是一个以上的数字或者(0个或多个数字加上.符号一个以上的数字)或者是(1个或多个数字加上.符号0个以上的数字)等,只要符合都会返回true 否则是false; 总之里面的表达式是来验证字符串的格式的,至于正则表达式如何表达这个需要你自己去找相关资料学习了,毕竟这是一门技术,不是一两句话能说清楚的.
好了, 我想够清楚了, 如果不明的 可以继续问, 如果某些专业名称不明白, 或许你可以百度查找相关定义,.
一段有意思的java代码请大家解释~首先0x7FFFFFFF就是Java里面整形变量的最大值了,你可以看看Integer.MAX_VALUE,"0x7FFFFFFF
*
2.0"是 , Java会把结果当做double型,因为double型的数值范围比int大,所以得到的是数学上正确的结果,然后强制转换我int就是Integer.MAX_VALUE了 , 第一个表达式为true;第二个里面"0x7FFFFFFF
*
2"会被认为是int型,因为0x7FFFFFFF和2都是合法的int,所以就是发生数值的溢出(int)(0x7FFFFFFF
*
2)就被算成-2了,你如果把第二个的结果显式制定为double型,得到的结果也是true:
double
d
=
0x7FFFFFFFL
*
2;//加L指定为long型
System.out.println((int)(0x7FFFFFFF
*
2.0)
==
(int)
d);
第三个因为数值比较小,所以是true 。
java线程的经典代码package threadgroup;
class ThreadDemo3 extends Thread {
private String name;
private int delay;
public ThreadDemo3(String sname, int i_delay) {
name = sname;
delay = i_delay;
}
public void run() {
try {
sleep(delay);
} catch (InterruptedException e) {
}
System.out.println("多线程测试!\n" + name + "\n" + delay);
}
}
public class testMyThread {
public static void main(String[] args) {
ThreadDemo3 th1,th2,th3;
th1 = new ThreadDemo3("线程1", (int) (Math.random() * 900));
th2 = new ThreadDemo3("线程2", (int) (Math.random() * 900));
th3 = new ThreadDemo3("线程3", (int) (Math.random() * 900));
th1.start();
th2.start();
th3.start();
}
}
package threadgroup;
public class threadDemo {
public static void main(String[] args) {
Thread t = Thread.currentThread();
t.setName("你好吗?");
System.out.println("正在进行的Thread是:" + t);
try {
for (int i = 0; i5; i++) {
System.out.println("我不叫穆继超" + i);
Thread.sleep(3000);
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("Thread has wrong" + e.getMessage());
}
}
}
package threadgroup;
public class threadDemo2 implements Runnable {
public threadDemo2() {
Thread t1 = Thread.currentThread();
t1.setName("第一个主进程");
System.out.println("正在运行" + t1);
Thread t2 = new Thread(this, "");
System.out.println("在创建一个进程");
t2.start();
try {

推荐阅读