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 · 330 阅读 · 0 评论 -
面试必会--多线程
多线程创建线程的几种方式?继承Thread类创建并启动线程的步骤定义Thread类的子类,重写run()方法,run()方法作为线程执行体,调用start()方法启动线程线程开启不一定立即执行,由cpu调度执行。********************子类继承Thread类具备多线程能力。启动线程:子类对象.start()不建议使用:避免面向对象编程(OOP)单继承局限性实现Runnable接口实现Runnable接口,重写run()方法,将定义的线程丢入到Runnable接原创 2021-08-12 22:05:02 · 68 阅读 · 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 · 894 阅读 · 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 · 89 阅读 · 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 · 1469 阅读 · 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 · 132 阅读 · 0 评论 -
java-青蛙跳台阶问题(递归,迭代)
题目一一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共需要多少种跳法方法一,用递归思路如果只有一级台阶, 一种跳法如果两级台阶,两种跳法,① 每次跳一级 ② 一次跳两级如果三级台阶,三种跳法 ① 每次跳一级,跳三次 ② 一次跳两级,一次跳一级 ③ 一次跳一级,一次跳两级如果是四级台阶, 5种跳法 ① 每次跳一级,跳4次 ,② 两次跳两级 ③每次跳一级,跳两次,一次跳两级,跳一次 ④ 一次跳一级,一次跳两级,一次跳一级.....台阶跳法.原创 2021-01-16 22:10:36 · 626 阅读 · 0 评论 -
java-百钱买百鸡
题目描述:公鸡五元钱一只,母鸡三元钱一只,小鸡一元钱三只,现有一百元钱欲买百鸡,共有多少种买法思路设 公鸡为 i , 母鸡为 j ,一共买一百只鸡,小鸡数为 k=100 - i-j5*i + 3* j + k/3 ==100要把所有的钱花完不能有零头 ,所以 k % 3 == 0i + j + k == 100 买鸡的总数加起来 100 只public class Test3 { public static void main(String[] args) { int i;//.原创 2021-01-15 20:32:53 · 422 阅读 · 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 · 4581 阅读 · 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 / 13 / 2 = (2 + 1) / 2 = (a + b) / a5 / 3 =(3+ 2) / 3 = (a + b) / a定义一个中间变量用于保存 交换的数l两个数交换,用中间变量,斜着看,最后一个数是下一行的开头public class TestTwentyOne { public st原创 2021-01-13 14:27:31 · 3137 阅读 · 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 · 1526 阅读 · 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 · 4400 阅读 · 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 · 697 阅读 · 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 · 1987 阅读 · 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 · 455 阅读 · 0 评论