
java基础
初遇见
在你选择的道路上,坚持走下去,时间总会给你答案
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CAS,乐观锁,悲观锁
文章目录CAS什么是CAS?CAS的缺点自旋锁如何让主线程最后一个输出悲观锁和乐观锁synchronized的问题 CAS 什么是CAS? CAS Compare And Swap 的缩写,比较并替换 CAS当中使用了3个基本操作数:内存地址V,旧的预期值A,要求改的新值B 更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会把内存地址V对应的值修改为B 用Unsafe提供了原子性操作 从思想上来说,synchronized属于悲观锁,悲观的以为程序中的并发情况严重,所以严防死守原创 2021-08-18 08:42:46 · 548 阅读 · 0 评论 -
面试必会--多线程
多线程 创建线程的几种方式? 继承Thread类 创建并启动线程的步骤 定义Thread类的子类,重写run()方法,run()方法作为线程执行体,调用start()方法启动线程 线程开启不一定立即执行,由cpu调度执行。 ******************** 子类继承Thread类具备多线程能力。 启动线程:子类对象.start() 不建议使用:避免面向对象编程(OOP)单继承局限性 实现Runnable接口 实现Runnable接口,重写run()方法,将定义的线程丢入到Runnable接原创 2021-08-12 22:05:02 · 90 阅读 · 0 评论 -
JAVA File 类练习题
题目1 递归删除某个目录下的所有的文件 public class Test4 { public static void main(String[] args) { File f = new File("D:\\练习删除目录"); delFile(f); System.out.println("删除成功!"); } static void delFile(File f) { File [] fileList = f.listFiles(); for(File file:file原创 2021-08-01 14:26:04 · 981 阅读 · 0 评论 -
IO-练习题-java
题目1 (1)将一个视频文件,切割成指定大小的文件块 (2)将上面切割出来的文件,合并成一个文件 mport java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; public class Test2 { public static void main(String[] args)原创 2021-08-01 14:14:04 · 149 阅读 · 0 评论 -
java基础练习题
1)以下代码输出结果为: public class IfTest{ public static void main(String[] args){ int x=3; int y=1; if(x=y) System.out.println("不相等"); else System.out.println("相等"); } } 不相等 相等 第五行代码会引起编译错误 程原创 2021-05-05 19:47:18 · 1568 阅读 · 0 评论 -
java - next()和nextLine()的区别
next()和nextLine()的区别 1)next() 对输入有效字符之前遇到的空白,next()方法会自动将其掉,只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 2)nextLine() 吸取的字符遇到回车结束. 例题 一、scan.nextLine的问题 例一: public class Sacnner { public static void main(String[] args) { Scanner scan = new Scanner(System.in); Syste原创 2021-02-05 13:02:03 · 237 阅读 · 0 评论 -
java-青蛙跳台阶问题(递归,迭代)
题目一 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共需要多少种跳法 方法一,用递归 思路 如果只有一级台阶, 一种跳法 如果两级台阶,两种跳法,① 每次跳一级 ② 一次跳两级 如果三级台阶,三种跳法 ① 每次跳一级,跳三次 ② 一次跳两级,一次跳一级 ③ 一次跳一级,一次跳两级 如果是四级台阶, 5种跳法 ① 每次跳一级,跳4次 ,② 两次跳两级 ③每次跳一级,跳两次,一次跳两级,跳一次 ④ 一次跳一级,一次跳两级,一次跳一级 ..... 台阶 跳法 .原创 2021-01-16 22:10:36 · 758 阅读 · 0 评论 -
java-百钱买百鸡
题目描述: 公鸡五元钱一只,母鸡三元钱一只,小鸡一元钱三只,现有一百元钱欲买百鸡,共有多少种买法 思路 设 公鸡为 i , 母鸡为 j ,一共买一百只鸡,小鸡数为 k=100 - i-j 5*i + 3* j + k/3 ==100 要把所有的钱花完不能有零头 ,所以 k % 3 == 0 i + j + k == 100 买鸡的总数加起来 100 只 public class Test3 { public static void main(String[] args) { int i;//.原创 2021-01-15 20:32:53 · 480 阅读 · 0 评论 -
java-输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
【例题】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数 for(int i=0;i<str.length();i++) { char c =str.charAt(i); ??? } -> ‘0’ - ‘9’ -> ‘a’ -‘z’ ‘A’ -‘Z’ -> ’ ’ 思路 键盘接收字符串型 因为Scanner 没有char 类型 所以 用String 类型 next() 但是 next() 对输入有效字符之前遇到的空白,next() 方法会自动将原创 2021-01-13 14:49:15 · 4672 阅读 · 1 评论 -
java-有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
【例题】 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。 思路 规律是 a = 2; 分子 b =1 ;分母 2 / 1 3 / 2 = (2 + 1) / 2 = (a + b) / a 5 / 3 =(3+ 2) / 3 = (a + b) / a 定义一个中间变量用于保存 交换的数 l两个数交换,用中间变量,斜着看,最后一个数是下一行的开头 public class TestTwentyOne { public st原创 2021-01-13 14:27:31 · 3329 阅读 · 0 评论 -
java-二维数组,随机生成元素,值在 90 -100 之间,求平均值
【例题】 二维数组,随机生成元素,值在 90 -100 之间,求平均值 思路: 随机数:Math.random() 随机生成 [ a,b] 之间的随机数 公式:[a,b]: (int)(Math.random() * (b -a + 1) + a) 循环给二维数组赋值 求总数 然后求平均数 public class Test4 { public static void main(String[] args) { int sum = 0;//总和 int avg = 0;//平均数原创 2021-01-13 13:59:35 · 1618 阅读 · 0 评论 -
java-求质数(素数)
质数(素数):大于 1 的正整数只能被 1 和 他本身 整除 从 2 开始,到这个数 -1 为止,都不能被这个数本身整除的自然数 最小的素数是: 2 【例题】 求 1 ~ 100 之间的质数 思路 定义一个布尔型的变量,用来标识 是否被j 除尽,除尽标识为false ,说明不是质数 双层循环 外循环 遍历 1 ~ 100之间的自然数 内循环 i 去 除的数 对质数的优化:Math.sqrt(i) i 开平方 例: 80 = 20 * 40 ,80 可以被 20 除尽,一定可以被 40 除尽 这道题是原创 2021-01-13 12:49:19 · 4478 阅读 · 0 评论 -
java-冒泡排序,交换两个数的三种方式
冒泡排序 原理:比较两个相邻的元素,将值大的元素交换到右面 给一个数组 arr ,数组中的元素 int [ ] arr ={8,9,10,6,4},用冒泡排序的做法进行排序 8,9,10,6,4 第一趟: 8 和 9 进行比较,9 大所以不用交换 ,9 和 10 比较,10 大所以不用交换 10 和 6 比较 10 大交换10 和 6 的位置 现在数组为 8 9 6 10 4 继续进行比较 10 和 4 进行比较 10 大,交换 10 和 4 的位置 最后第一趟比完的序列原创 2021-01-12 19:39:08 · 779 阅读 · 0 评论 -
java-一次运算结束后,是否继续? Y 是,其他键结束
请输入第一个数 4 请输入第二个数 9 请输入运算符 + 运算结果是13 是否继续? Y 是,其他键结束 Y 请输入第一个数 7 请输入第二个数 0 请输入运算符 / 除数不能为零,请重新输入 思路: 一次运算结束后 ,是否继续? Y 是,其他键结束 用do - while 循环 do{ 语句;//无论是否满足条件都会先执行 }while(条件);//一定要加; while(判断输入的字符是不是Y); 判断字符串是否相等用 equals() while(a.equals("Y")) 注意点:定义输入字符.原创 2021-01-11 22:13:18 · 2227 阅读 · 7 评论 -
java-打印九九乘法表倒的和正的
打印九九乘法表倒的 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64原创 2021-01-11 20:55:08 · 502 阅读 · 0 评论