
java
键盘 | 书生
You can`t indulge a little mistake, or you`ll lose the whole game
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
创建线程的四种方法
1.继承thread ①将当前线程要执行的操作声明在run()内 ②实例化Thread类的子类,调用其start():启动线程、调用当前线程的run() 2.实现runable: ①类可以实现多个接口;但是只能继承一个父类 ② 实现的方式更方便的来处理有共享数据的情况 3.实现callable: ①可以在cal方法中抛出异常,更灵活 ②call相对于run方法可以有返回值 ③可以通过泛型指定返回值的确定类型 4.使用线程池: ①降低了资源消耗,使用完可以被复用 ②提高了程序响应速度原创 2021-06-06 21:47:34 · 103 阅读 · 0 评论 -
wait和sleep的异同
相同点:一旦执行,当前线程进入阻塞状态 不同点:①定义方法所属的类:sleep():Thead中定义;wait():Object中定义 ②使用范围不同:sleep()可以在任何需要使用的位置被调用;wait()必须使用在同步代码块或者同步方法中 ③释放监视器操作不同:sleep()不会释放监视器;wait()会释放同步监视器 ④结束等待的方式不同:sleep()到指定时间自动结束;wait需要调用notify()/notifyAll()唤醒,进而结束阻塞 ...原创 2021-06-06 21:21:28 · 106 阅读 · 0 评论 -
零散
非静态代码块随着对象的创建而执行原创 2021-06-06 08:11:33 · 135 阅读 · 0 评论 -
基本数据类型的自动装箱
当自动装箱的int值在[-128,+127]范围内时,使用Integer底层共享的IntegerCache数组中的元素 因此:Integer m = 1; Integer n = 1; m和n的地址值相同。原创 2021-06-05 17:16:17 · 100 阅读 · 0 评论 -
取巧的字符统计
int[] count = new int[26];//记录各个小写的字符出现的次数 // 字母-97后的值为count的角标,次数为count的值 for(int i = 0 ;i < arr.length;i++){ //'a' : 97 count[arr[i] - 97]++; } //将角标+97恢复字母的原型 for(int i = 0;i < count.length;i++){ if(count[i] != 0){ Sys...原创 2021-06-04 16:12:12 · 59 阅读 · 0 评论 -
break,continue可以结束指定的循环
label:for(int i = 1;i <= 4;i++){ for(int j = 1;j <= 10;j++){ if(j % 4 == 0){ //break; //默认结束的是包裹其最近的一层循环! //continue;//默认结束的是包裹其最近的一层循环的当次! //break label;//结束指定标签代表的循环结构 continue label;//结束指定标签代表的循环结构的当次循环 } .原创 2021-06-01 21:39:50 · 239 阅读 · 0 评论 -
质数生成,体会不同的实现方式的,执行效率
public static void main(String[] args) { long start = System.currentTimeMillis();//获取当前时间的毫秒数 int count = 0;//记录质数的个数 for(int i = 2;i <= 100000;i++){ boolean isFlag = true;//标识是否没有被除尽过。 for(int j = 2;j < i;j++){//遍历从2开始,到i - 1 范.原创 2021-06-01 21:09:17 · 126 阅读 · 0 评论 -
switchcase案例
根据输入的月,日,输出是一年的哪一天 Scanner scan = new Scanner(System.in); System.out.println("请输入month:"); int month = scan.nextInt(); System.out.println("请输入day:"); int day = scan.nextInt(); // 利用不加break,case到的项后面会继续执行的原理,将后面的原创 2021-06-01 15:58:08 · 218 阅读 · 0 评论 -
使用scanner类
① 导入Scanner类:import java.util.Scanner; ② 实例化Scanner类:Scanner scan = new Scanner(System.in); ③ 获取具体类型变量,使用具体的方法即可。 Scanner scan = new Scanner(System.in); System.out.println("请输入你的姓名:"); String name = scan.next(); System.out.println("请输入你的年原创 2021-06-01 10:28:32 · 102 阅读 · 0 评论 -
三元运算符和if else
三元运算符都可以改写为if-else结构。反之,if-else结构并不都能改写为三元运算符的方式! 当二者都可以使用时,建议使用三元运算符,因为执行效率稍高!原创 2021-06-01 10:16:02 · 255 阅读 · 0 评论 -
位运算
<< : 在一定范围内,每向左移动一位,相当于原有的数据 * 2。 ----->过犹不及 >> : 在一定范围内,每向左移动一位,相当于原有的数据 / 2。 如果是正数右移,高位补0 如果是负数右移,高位补1 >>> : 无符号右移。不管是正数,还是负数右移,高位都补0。 交换两个变量的值位运算: ① 可读性差 ③ 只适用于数值类型 m = m ^ n; n = m ^ n;...原创 2021-06-01 09:48:48 · 56 阅读 · 0 评论 -
基本数据类型容量大小和所占字节
容量大小比较和所占字节数 byte(1)/short(2)/char(2) < int(4) < long(8) < float(4) <double(8) 补充:byte/short/char运算时,结果为int类型原创 2021-05-31 23:14:12 · 153 阅读 · 0 评论 -
前++和后++,++,+=类型操作需注意数据类型不变
m=10 n=m++,先赋值,再运算 1)n=m=10,m=m+1=11 n=++m,先运算,再赋值 1)m=m+1=11,n=m=11原创 2021-05-31 23:08:08 · 139 阅读 · 0 评论 -
二进制的反码和补码
反码:符号位不变,其他位取反 补码:反码加1原创 2021-05-31 21:25:56 · 120 阅读 · 0 评论 -
java总结
重写equals和hashcode hashset add对象数据时,先比较hashcode是否相同,如果hashcode不同的话,直接写进去,如果相同的话会比较equals方法 在将对象存储在HashSet之前,要先确保对象重写equals()和hashCode()方法 接口 属性默认public static final,方法默认public abstract 抽象类 作...原创 2019-12-30 09:44:37 · 192 阅读 · 0 评论 -
javaWeb
概述 接收并响应客户端请求 基础知识 html5<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <title>网页标题</title> <meta name="keywords" content="关键字"...原创 2019-09-28 18:58:19 · 151 阅读 · 0 评论 -
java基础
概述 jre是java运行环境 jdk是java开发工具包,包含jre jvm是Java虚拟机 基础知识 数据类型 整型 short 16位 int 32位 long 64位 浮点 float 32位 double 64位 字节 byte 8位 字符 char 布尔 boolean ...原创 2019-09-28 18:57:33 · 126 阅读 · 0 评论