java基础
普罗米修斯lol
这个作者很懒,什么都没留下…
展开
-
实现哥德巴赫猜想的三种方法
验证哥德巴赫猜想:任何一个大于6的偶数,都能分解成两个质数的和,要求输入一个整数,输出这个数被被分解成哪两个质数的和。如:1414 = 3 + 1114 = 7 + 7第一种:循环判断实现public static void main(String[] args) { gdbh(14);}//3.验证哥德巴赫猜想:任何一个大于6的偶数,都能分解成两个质数的和,// 要求输入一个整数,输出这个数被被分解成哪两个质数的和。public static void gdbh(int num)原创 2020-10-14 00:37:54 · 897 阅读 · 0 评论 -
数组排序之选择排序和Arrays类提供的方法
选择排序选择排序:外层循环控制轮数,内层循环控制次数,经过一大轮的比较之后,先会记录数组中的最值的下标,再将最值的下标和数组的第一个元素进行交换,所以经过第一大轮之后会得到一个最值,再进行第二轮比较,第二轮比较时就不会比较第一轮选出的元素,依次循环,直到排好顺序//定义一个方法对数组进行排序。选择排序public static int[] sort(int[] arr) { for(int j = 0; j < arr.length - 1 ; j++) { int mi原创 2020-10-13 23:39:16 · 365 阅读 · 0 评论 -
冒泡排序的优化
冒泡排序冒泡排序的实现冒泡排序:将数组的第一个元素与第二个进行比较,是否需要交换位置,再将第二个元素与第三个元素进行比较,是否需要交换元素…依次进行下去,一直比较到数组最后一位元素,就可以选出一个最值,这也叫一轮比较,第二轮比较再将第一个元素和第二个比较…循环下去,实现排序//定义一个方法,用于对数组进行排序public static int[] sort(int[] arr) { //冒泡排序 for (int i = 0; i < arr.length - 1 ; i++)原创 2020-10-13 23:21:05 · 147 阅读 · 0 评论 -
单列集合Collection
单列集合集合框架1、概念2、集合框架Collection接口1、常用方法迭代器1、迭代器原理2、foreach循环3、迭代器使用常见问题泛型基本使用1、为什么要有泛型?2、泛型的语法:3、泛型注意的地方集合框架1、概念概念:集合一种容器,可以存储对象。集合和数组区别:数组的长度固定,集合长度不固定数组可以存储基本数据类型和引用数据类型 int[] / Student[],集合是能存储引用数据类型数组中每个元素都是相同的数据类型,集合可以存储不同的数据类型2、集合框架原创 2020-10-07 09:55:42 · 302 阅读 · 0 评论 -
Hashtable和HashMap的区别及演示
Hashtable和HashMap的区别HashTable常用方法与HashMap一致HashMap与Hashtable区别:1、HashMap是线程不安全的,HashTable是线程安全的2、HashMap中key可以为null,value也可以为null。HashTable不可以3、Hashtable数组的初始容量是12,而HashMap是16在实际开发中一般都是用HashMap。ConCurrentHashMap是线程安全的public class HashTable原创 2020-10-06 19:49:54 · 279 阅读 · 0 评论 -
使用Map集合充当数据承载Bean存储数据
使用Map集合充当数据承载Bean存储数据public class Demo9 { public static void main(String[] args) { /** * 一件商品 * 在Java中如何表示 Product类 属性:id、 price 、num、...... * Map集合 id--->001、price--->原创 2020-10-06 18:24:29 · 361 阅读 · 1 评论 -
Map集合之HashMap的常用方法
Map接口的实现类HashMap的常用方法public class Demo8{ public static void main(String[] args) { Map<String, String> map = new HashMap<>(); //向map集合中添加元素 put(K key,V value) map.put("CN","中国"); map.put("HK","香港");原创 2020-10-06 18:09:41 · 269 阅读 · 0 评论 -
JDBC基础之六大步的简化
工具类的封装和使用JDBC工具类1、需要封装的原因2、代码实现单元测试ORM映射实体类的设计规范代码实现JDBC工具类1、需要封装的原因若需要频繁操作数据库就需要频繁使用六大步,可将里面重复的代码封装成工具类,减少代码重复可封装的步骤:1、注册数据库驱动(静态代码块)2、获取数据库连接 (方法:getConnection)3、释放资源 (方法:closeAll(Connection , Statement , ResultSet ))4、将配置信息放到properties配置文件中,减原创 2020-10-06 12:18:04 · 228 阅读 · 0 评论 -
JDBC基础之六大步
JDBC学习JDBC核心思想JDBC开发步骤1、 加载驱动2、获取数据库连接3、获取数据库操作对象Statement4、通过Statement对象执行SQL语句5、处理返回结果6、关闭资源JDBC开发案例ResultSet结果集使用statement对象操作数据库的问题引入PreparedStatement使用PreparedStatement完成的登录案例演示JDBC核心思想JDBC(Java Database Connectivity) Java 连接数据库的规范(标准),可以使用 Java 语言连原创 2020-10-06 11:16:15 · 229 阅读 · 0 评论 -
使用File类删除文件夹
删除一个文件夹(文件夹中还包含其他文件夹)使用File类和递归方法public static void main(String[] args) { //删除一个文件夹(文件夹中还包含其他文件夹) File file = new File("d:\\zz"); deleteAllFiles(file);}public static void deleteAllFiles(File file){ //通过file对象获取File数组 File[] listFile原创 2020-10-06 09:50:08 · 712 阅读 · 0 评论 -
多线程之用阻塞队列完成生产者消费者模型
使用阻塞队列模拟完成生产者和消费者问题使用线程池,匿名类和线程安全的集合Queuepublic static void main(String[] args) { //使用阻塞队列模拟完成生产者和消费者问题 ExecutorService es = Executors.newFixedThreadPool(2); //创建一个固定长度的队列,如果队列已满,则处于阻塞状态,直到有可用空间 BlockingQueue<Integer> bq = new Array原创 2020-10-06 00:01:54 · 133 阅读 · 0 评论 -
多线程之生产者消费者模型详解
用多线程完成生产者消费者模型,生产者生产一个产品就等待消费者消费使用多线程public static void main(String[] args) { //使用多线程完成生产者消费者模型 Shop shop = new Shop(); ProducerThread pt = new ProducerThread(shop); ConsumerThread ct = new ConsumerThread(shop); pt原创 2020-10-05 23:36:25 · 226 阅读 · 0 评论 -
多线程练习之分别打印各个范围质数
利用多线程求解某范围质数,每个线程负责 1000范围:线程1找1-1000;线程 2 找 1001-2000;线程 3 找 2001-3000。编程程序将每个线程找到的素数及时打印。线程池和匿名类public static void main(String[] args) { //.利用多线程求解某范围质数,每个线程负责 1000范围: // 线程1找1-1000;线程 2 找 1001-2000; // 线程 3 找 2001-3000。 // 编程程序将每个线程找到的原创 2020-10-05 22:23:56 · 598 阅读 · 1 评论 -
多线程练习之两个线程交替打印数字和字母
写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z打印顺序为12A34B56C……5152Z(2个数字 1个字母)。用线程的创建方式和线程池// An highlighted blockvar foo = 'bar';public class Test02 {原创 2020-10-04 12:51:14 · 913 阅读 · 1 评论 -
字符串练习题之单词首字母大写
String练习题(字符串练习题):将每个单词的首字母改为大写使用String的方法public static void main(String[] args) { String str = "this is a text"; //方式一:将每个单词的首字母改为大写 String[] str1 = str.split(" "); for (int i = 0; i < str1.length; i++) { String ch = str1[i].substring(0,原创 2020-09-21 13:41:02 · 972 阅读 · 0 评论 -
使用Calendar打印指定年份的日历
用户输入年份,打印该年的所有月份日历(使用Calendar实现)java基础使用while,for,Calendar类public static void main(String[] args) { //a、用户输入年,打印该年的日历(使用Calendar实现) Calendar c = Calendar.getInstance(); Scanner sc = new Scanner(System.in); System.out.println("请输入年"); int y =原创 2020-09-18 10:51:16 · 659 阅读 · 0 评论 -
Map练习题输出每个字符出现的次数
Map集合练习题给定一个字符串,请输出该字符串由哪些字符组成,每个字符出现几次?public static void main(String[] args) { //给定字符串判断字符串中每一个字符的个数 /** * 1、将字符串转换成字符数组 * 2、定义Map集合,String,Integer * 循环遍历每一个字符 * 判断这个map中是否包含这个key * 1、如果不存在这个key,那么就将当前这个字符作为key,value就是1原创 2020-09-18 10:16:53 · 368 阅读 · 0 评论 -
String练习题有效手机号简单判断
判断一个手机号码是否合法,必须是11位,第一位必须是1,第二位必须是34578,手机号必须是数字使用String的方法下面展示一些 内联代码片。String num = "13627283989";//判断手机号是否正确:方式二(正则表达式)public boolean rightNum2(String num){ //正则表达式里面不要随便打空格 //第一个表示1,第二位是34578,第三为[0-9]{9}表示后面9个都是0-9 String regex = "[1][34578][0-9原创 2020-09-15 17:36:19 · 672 阅读 · 0 评论 -
判断数字字符串中每个数字出现的次数
给定一个由数字组成的字符串如:“1239586838923173478943890234092”;统计出每个数字出现的次数。使用String常用类和for循环String str = "1239586838923173478943890234092";//将字符串转化为字符数组char[] ch = str.toCharArray();//外层循环将字符0-9与目标字符串比较//字符'0'在字符集中是48代替,且字符可以加加操作和比较操作for(int i = '0' ; i < '9'原创 2020-09-15 13:46:10 · 2306 阅读 · 1 评论