Java
Javase部分
这个妹妹我见过
小菜鸡养成记
展开
-
【Spring】Spring教程入门到精通
spring原创 2022-09-14 22:06:30 · 537 阅读 · 1 评论 -
Error while running command to get file permissions : (null) entry in command string: null ls -F
Error while running command to get file permissions : (null) entry in command string: null ls -F意思是没有得到文件的允许意思是说要把路径换成文件,而不是目录!注意是在路径后面加上文件名!原创 2020-08-20 19:53:32 · 1655 阅读 · 0 评论 -
【大数据开发】IDEA类型注释和隐藏参数类型提示设置
idea这样设置一下,就可以不需要再显示提示返回值类型是什么(别人看你代码也不会感觉你咋这么low \狗头,细品)。别问我为什么写这个,因为我已经设置很多遍了还是不好找…最直接的方式 — 在搜索框搜一下scala,下面的设置都可以很容易找到!就这样,神奇效果出现了...原创 2021-04-20 14:42:55 · 903 阅读 · 0 评论 -
【大数据开发】JDBC编程练习——实现登录、注册、转账day27
账户表脚本-- MySQL dump 10.13 Distrib 5.7.17, for Win64 (x86_64)---- Host: localhost Database: db1-- -------------------------------------------------------- Server version 5.7.17-log/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/原创 2020-08-04 13:51:56 · 206 阅读 · 0 评论 -
【大数据开发】JDBC编程——使用druid、dbutils工具类、MVC设计模式简单对银行账号转账业务进行优化day28
使用的数据库是前一天的,前面有脚本。这里只是实现了控制层的分层和模型层的分层,视图层简单模拟。一、项目结构二、封装工具类(1)util\DBUtilDruid.javapackage com.qf.util;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;import java.io.InputStream;import java.sql.Connection;imp.原创 2020-08-04 23:02:01 · 184 阅读 · 0 评论 -
【大数据开发】JDBC编程——JDBC基本操作(增删改查、封装工具类)、批处理、防止SQL注入
一、JDBCjava database connectionJava提供的是连接数据库的规范、规则,提供的只是接口,因为数据库不同,具体的实现方式不同,所以java只制定规则,各个数据库厂商提供接口的实现类lib — 库1.实现需要准备mysql的驱动jar包:jar包中都是jdbc提供的接口的实现类2.加载mysql驱动,把mysql的驱动类加载到内存(反射)3.封装工具类:把数据库相关的配置提取到db.properties中定义工具类:定义存储数据库配置的四个静态的成员变量因为加载原创 2020-08-04 08:31:45 · 244 阅读 · 0 评论 -
JSON解析的四种方式
JSON解析的四种方式原创 2021-01-14 17:15:01 · 152 阅读 · 0 评论 -
【大数据开发】Java基础——UTC时间格式(2020-10-31T08:04:34+08:00)格式化方法
方法一(推荐)package Test4import java.text.SimpleDateFormatimport java.util.Dateimport org.joda.time.DateTimeobject Test4{ def main(args: Array[String]): Unit = { val time = "2020-10-31T08:04:34+08:00" val sdf = new SimpleDateForma原创 2020-11-02 23:21:45 · 2668 阅读 · 1 评论 -
【大数据开发】Java语言基础——线程的生命周期、线程同步
新建:使用new关键字创建一个线程以后,该线程就处于新建状态就绪:线程对象调用了start()方法后,线程处于就绪状态,处于这个状态的线程没有开始运行,只是表示可以运行,什么时候可以运行取决于JVM里的线程调度器的调度。就绪状态相当于“等待执行”,并没有真正进入运行状态(如果希望调用子线程的start()方法后希望子线程立刻执行,则程序可以使用Thread.sleep())方法只能对处于新建状态的线程调用start()方法,否则会发生IllegalThreadStateException异常运行:如果原创 2020-08-04 07:53:34 · 124 阅读 · 0 评论 -
【Java语言基础】控制台实现贪吃蛇小游戏
一、实现效果二、题目要求三、项目结构四、节点信息 Node.javapackage sakeGame;//节点信息public class Node { private int i; private int j; public Node(){} public Node(int i, int j) { this.i = i; this.j = j; } public int getI() {原创 2020-08-01 20:27:49 · 745 阅读 · 0 评论 -
【大数据开发】Java语言基础——线程池、反射、UDP编程day22
一、线程池 Executors先新建一个任务public class Task implements Runnable{ @Override public void run() { for(int i=1;i<=5;i++){ System.out.println(Thread.currentThread().getName()+"..."+i); try { Thread.sleep原创 2020-07-28 08:39:40 · 175 阅读 · 0 评论 -
【大数据开发】Java语言基础——生产者消费者问题、Lock、线程停止的两种方式、守护线程、join、yied、优先级day21
一、生产者消费者问题(1)生产者负责生产,消费者负责消费(2)生产者生产的产品,消费者消费的是产品(3)生产者有生产任务,消费者有消费任务(3)生产和消费可以同时进行需要描述产品定义生产者的任务定义消费者的任务Demo1结果解决方式:将if判断语句改为while语句但是出现了死锁现象截图把if改为while,出现了死锁,原因线程把notify()改成notifAll(),不该唤醒的线程也被唤醒了,程序性能降低了。解决这个问题需要使用jdk1.5提供的新的API二、Lockjd原创 2020-07-26 21:35:07 · 185 阅读 · 0 评论 -
【Java语言基础】IO流中重要的几个流类结构图
原创 2020-07-26 17:07:15 · 133 阅读 · 0 评论 -
【大数据开发】Java语言基础——多线程安全问题、银行问题、懒汉式多线程安全问题、死锁、线程间通信day20
一、多线程线程安全问题满足以下两个条件:(1)多个线程共享了数据(2)操作共享数据的语句有多条(超过1条),一个线程执行了操作共享数据的语句一部分时CPU就被抢走了,当再次获得CPU时,直接执行了后边的语句,从而导致了错误的修改。则该程序存在多线程安全问题如下:下面利用Thread的sleep()方法来查看多线程不安全问题,修改上图代码注意:这里需要处理异常InterruptedException,不能抛出,因为run()方法是重写的Demo1问题:怎么解决安全问题? ------原创 2020-07-24 17:58:35 · 150 阅读 · 0 评论 -
【大数据开发】Java语言基础——对象流、RandomAccessFile、内存流、数据流与解码day19
一、ObjectOutputStream和ObjectInputStream(重点)(1)创建对象:序列化ObjectOutputStream有两种构造方法知道了使用构造方法创建对象,那么怎么写入对象呢?用下面的方法实现,将对象存储起来,实现持久化(程序运行时才存在对象----位于堆内存中,JVM退出时对象被销毁)要序列化的某些对象不实现java.io.Serializable接口会产生NotSerializableException异常,因此必须要实现Serializable接口。一个类只有原创 2020-07-23 21:42:46 · 144 阅读 · 0 评论 -
【大数据开发】Java语言基础——多线程的概念、实现多线程day19
一、多线程的概念进程:指的是正在进行中的程序。每个进程都会占据一定的内存大小线程:指的是负责程序执行的一条执行路径,也称为一个执行单元。进程的执行实际是线程在执行。(1)一个进程至少有一个线程,当一个进程有多个线程时,就是一个多线程程序(2)当一个进程中的所有线程全部执行完,进程才结束。(3)多线程程序一定能提高效率吗?不一定,但是肯定能实现。在同一个程序同时执行不同的功能或相同功能的效果。(4)Java程序是不是多线程的?至少有一个负责程序的线程,这个线程执行的是main中的代码,还需要有原创 2020-07-23 17:59:55 · 134 阅读 · 0 评论 -
【大数据开发】Java语言基础——字节流、转换流、File、打印流、序列流day18
字符流ReaderWriter字符缓冲流BufferedReaderBufferedWriter字节流:可以操作任何类型的数据InputStream:字节输入流-----FileInoutStream:int read() 一次读一个字节 int read(byte[] arr)OutputStream:字节输出流,不需要刷新-----FileOutputStream:write(byte[] b);字节流和字符流的区别:直接写入文件,不需要刷新得到文件中字节的总数,也就是原创 2020-07-23 08:49:08 · 218 阅读 · 0 评论 -
【大数据开发】Java语言基础——IO流、缓冲流、装饰器模式day17
一、IO流(1)Input、Output 输入输出流(2)实现了设备之间的数据传输设备:内存、键盘,控制台、硬盘、控制台分类(1)按照方向分:输入流、输出流(相对于内存)(2)按照操作的数据分:字节流:可以操作文本,图片,音频,视频,可以处理任何类型的数据字符流:只能操作文本数据,在字节流的基础上融入了编码,方便字符的处理常见编码:ASCII、ISO8859-1(欧洲编码表)、GB2312、GBK、UTF-8原理:字符流字符输入流父类:Reader字符输出流父类:Writer 字原创 2020-07-22 08:02:39 · 187 阅读 · 0 评论 -
【Java语言基础】IO流、FileWriter、FileReader、BufferedWriter、BufferedReader、Lambda表达式综合练习题day17
1.有五个学生,每个学生有3门课的成绩从键盘输入以上数据(包括姓名,三门课成绩), 输入的格式:如:zhagnsan,30,40,60计算出总成绩, 并把学生的信息和计算出的总分数高低顺序存放在磁盘文件"stud.txt"中。package day16;import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;import java.util.*;class Student{原创 2020-07-22 07:50:49 · 278 阅读 · 0 评论 -
【Java语言基础】Map的四种遍历方式
Map四种遍历方式class Demo2 { public static void main(String[] args) { //Map集合的遍历 Map<String,String> map = new HashMap<>(); map.put("name","lisi"); map.put("age","18"); map.put("address","shenzhen"); //第一种 //Set<Map.Entry<K原创 2020-07-21 09:07:28 · 79 阅读 · 0 评论 -
【大数据开发】Java语言基础——Map、数组转集合、集合转数组、Collections、LinkedHashSet、LinkedHashMap、HashTable、Properties day16
Map(1)独立的接口,成对地存储数据,每一对称为键值对(2)键不能重复,如果重复了,则后添加的value会覆盖先添加的value(3)值是可以重复的(4)无序(5)添加:Demo1删除:修改:判断:遍历4种方式什么情况下使用Map?存储的数据时键值对的关系的时候HashMap保证键值对不重复的原理和HashSet一样:int hashCode() boolean equals(Object obj)判断集合中是否包含该键,还是依据int h原创 2020-07-21 08:36:45 · 540 阅读 · 0 评论 -
【大数据开发】Java语言基础——Collection、ArrayList、LinkedList、HashSet、TreeSet(Comparable接口和Comparator方法的实现)day15
一、Collection:共性的方法List存储的对象是有序的(添加对象的顺序和集合存储的顺序是一致的),且是可以重复的ArrayList:后缀是父接口,前缀说的是数据结构底层使用的是数组,(内存连续),线程不安全的,便于数据的查找,不便于数据的添加和删除Vector: 底层使用的是数组,(内存连续),线程安全的,便于数据的查找,不便于数据的添加和删除LinkedList:底层使用的是链表,(内存不连续),不便于数据的查找,便于数据的添加和删除Set存储的对象是无序的原创 2020-07-20 08:29:23 · 166 阅读 · 0 评论 -
【大数据开发】Java语言基础——集合作业day14
1.设计一个方法,删除一个集合中,所有的指定的元素。例如,将集合中所有的3都删除。import java.util.*;class Demo8{ public static void main(String[] args) { Collection coll = new ArrayList(); coll.add("1"); coll.add("2"); coll.add("4"); coll.add("3"); coll.add("3"); coll.add("2"原创 2020-07-19 17:15:15 · 346 阅读 · 1 评论 -
【大数据开发】Java语言基础——字符串处理、Collection作业day13
1. 已知字符串:“this is a test of java”. 按要求执行以下操作:(1) 【简】统计该字符串中字母s出现的次数(2) 【简】取出子字符串"test"(3) 【简】将本字符串复制到一个字符数组Char[] str中.(4) 【中】将字符串中每个单词的第一个字母变成大写, 输出到控制台。package day03;public class Demo8{ public static void main(String[] args) { String str = "原创 2020-07-19 17:09:21 · 397 阅读 · 0 评论 -
【大数据开发】Java语言基础——正则表达式匹配、切割、替换、获取四种常见应用day13
正则是专门针对字符串的,有以下功能1:匹配 :实际上使用的是String的 boolean matches(String regex)方法2:切割: 实际上使用的是String的 String[] split(String regex)方法3:替换: 实际上使用的是String replaceAll(String regex, String replacement) 把字符串中符合正则的字符串替换为第二参数接收的字符串4:获取: 从一个字符串中得到我们需要的内容import java.util.*原创 2020-07-19 15:01:43 · 143 阅读 · 0 评论 -
【大数据开发】Java语言基础——枚举类七大总结day12
枚举类–jdk1.5:Enum一个类只能创建固定个数的对象?—使用枚举1.定义一个枚举类,只要是枚举类,那么这个类的对象的个数就是有限的,枚举类实际就是个类2.枚举类是不能继承其它类的,因为每个枚举类已经继承了Enum,枚举类不能有子类,因为是final的常用方法Enum:int ordinal() 返回的是枚举项的编号值 编号从0开始int compareTo(E o) 根据枚举项的编号比较大小的String name() 返回枚举常量的名称String toString()原创 2020-07-19 11:31:05 · 103 阅读 · 0 评论 -
【Java语言基础】BigInteger五个常用方法总结
不懂的时候一定要多查看APIimport java.math.*;class Demo5 { public static void main(String[] args) { //掌握 BigInteger big1=new BigInteger("79837428348927492389387498379874594"); BigInteger big2=new BigInteger("49837428348927492389387498379874594");原创 2020-07-19 10:52:23 · 125 阅读 · 0 评论 -
【Java语言基础】深入学习Lambda表达式、函数引用(含知识点和习题)
今天是周末了,也不能忘记学习噢!今天查缺补漏,当然,最好的学习方式就是动手做题,学习Lambda表达式的时候建议用IDEA去写,可以看看IDEA的提示但是请不要按Enter键!我时刻告诫自己还是一个菜鸟!好了,下面来看看题目1.模拟 Arrays.sort 方法,实现如下方法,实现对一个Person数组的排序,并用lambda表达式在调用方法的时候,作为第二个参数的实参。给定函数调用格式如下:MyArrays.sort(Person[] array, MyComparator comparato.原创 2020-07-19 10:40:46 · 251 阅读 · 0 评论 -
【大数据开发】Java语言基础——深入泛型day15
只作了总结和怎么用,给了很多例子,讲究实践,不讲泛型是做什么用的一、定义接口、类public interface List<E>{ //在接口里,E可以作为类型使用 //下面方法可以用E作为参数类型 void add(E x); Iterator<E> iterator();}泛型的实质:允许在定义接口、类时声明类型形参,类型形参可以在整个接口、类体内当成类型使用包含泛型 声明的类型可以在定义变量、创建对象时传入一个类型实参。在接口中增加泛型声明//泛型.原创 2020-07-18 17:57:37 · 168 阅读 · 0 评论 -
【Java语言基础】Java中Date、String、Long三种类型互相转换
总结:parse要throws ParseException,System.currentTimeMillis()不要写成System.currentTimeMills()Date date = new Date();//获取当前时间DateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);1.将date型的数据转换成特定的String型字符串 String sDate=df.format(date);2.把String型的原创 2020-07-18 08:31:50 · 267 阅读 · 0 评论 -
【Java语言基础】List的五种遍历方式
import java.util.*;class Demo2 { public static void main(String[] args) { List list=new ArrayList(); list.add("java01"); list.add("java02"); list.add("java03"); //1 Iterator ite = list.iterator(); while(ite.hasNext()) {原创 2020-07-17 08:48:59 · 107 阅读 · 0 评论 -
【Java语言基础】Collection的四种遍历方式
import java.util.*;class Demo10{ public static void main(String[] args) { // Iterator iterator() //获取集合中的对象---集合的遍历 iterator()返回的是内部类对象,使用内部类可以直接操作集合内部的对象 Collection coll = new ArrayList(); coll.add("java01"); coll.add("java02");原创 2020-07-17 08:42:46 · 470 阅读 · 0 评论 -
【大数据开发】Java语言基础——Date、DateFormat、SimpleDateFormat、Calender、Math类库、enum枚举、lambda表达式day12
今天学习的东西比较多,其中在学习Java中的类库时需要不停翻阅API,今天主要学习了Java中一些常用的类库和lambda表达式,只有通过查阅API才能够真正知道各种类库之间的继承关系、常量、构造方法和其他的方法,并且这不能只通过学习书上写的东西,因为书上写的东西往往有很多地方不好表达出来,这一块只能通过自己动手写写才能记住和学会。后面继续学习了lambda表达式,这是jak1.5版本之后才有的,lambda表达式的出现更加体验了Java这门语言的优雅!好了,下面就是今天学习的笔记了。一、Date、D.原创 2020-07-14 19:17:13 · 207 阅读 · 0 评论 -
【大数据开发】Java语言基础——异常、多重异常、自定义异常、包装类、享元day11
异常详解,异常这块的所有知识都要依靠实战来学习,因此笔记都写到了注释里了一、什么是异常程序在运行时出现的不正常情况(不是编译时的问题)默认的处理机制:在异常时Java定义的前提下,系统自动创建异常类对象,抛给JVM,JVM调用异常类对象的printStackTrace()方法显示异常类信息,然后程序中断。异常体系:Exception(异常):Java把运行时出现的各种不正常情况提取属性和行为,然后封装成类,因而出现了各种异常类异常名称、异常信息、异常发生的位置都需要使用异常类描述二、Ar.原创 2020-07-13 17:46:16 · 498 阅读 · 0 评论 -
【Java语言基础】面向对象之封装、继承、抽象类、接口、多态综合知识习题及总结day11
这几天逐渐被idea所折服,越来越喜欢这个优雅又强大的代码编辑器,有很多人说idea对很多初学者不友好,但是在我看来,只要你足够自律,并且英语不会太差,语法上关键的几个单词没什么大问题,idea对初学者是有很大帮助的。因为idea强大的语法检查功能对初学者十分友好,idea提供各种错误提示,以及各个需要注意的地方,这让初学者可以轻松找到出错的代码块。好了,下面来看题目吧!1.根据以下这段话的描述,用面向对象的思想实现狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。狗通常的时候和人打招呼.原创 2020-07-12 15:07:07 · 1383 阅读 · 0 评论 -
【Java语言基础】Java面向对象的设计模式学习总结
以前一直都是面向过程编程,虽然之前也接触过面向对象编程,但是一直以来都是充满困惑,能力也不能得到提升,总结发现是因为模式设计思想没有从根本上提高。面向对象的设计模式原创 2020-07-11 17:26:18 · 110 阅读 · 0 评论 -
【Java语言基础】数组转换成字符串的三种方式day11
方法一、Arrays.toString(ch1);char[] ch = {'m','g','s','g','u','o','s','h','e','n','g'}; System.out.println(Arrays.toString(ch));输出:[m, g, s, g, u, o, s, h, e, n, g]方法二、利用StringBuffer()char[] ch = {'m','g','s','g','u','o','s','h','e','n','g'};原创 2020-07-11 14:47:10 · 211 阅读 · 0 评论 -
【Java语言基础】分别调用抽象类中有参数和无参数构造器匿名实现类的对象day11
周末也不要忘记学习呀!创建匿名内部类事,必须实现接口或抽象父类里的所有抽象方法,如果需要,也可以重写父类中的普通方法。在本程序中匿名内部类重写了父类Device类中的getName方法,其中getName方法并不是抽象方法。package com.company;abstract class Device{ private String name; abstract double getPrice(); Device(){} Device(String name).原创 2020-07-11 11:36:21 · 230 阅读 · 0 评论 -
【大数据开发】Java语言基础——Java语言格式占位符、String类构造方法和其他方法day10
本文主要介绍一些Java语言格式占位符、String类构造方法和其他方法,在学习的时候查阅了jdk1.8参考文档,同时这几天的学习对于以后怎样查阅和学习参考文档有了很大的提升。具体的用法在java源文件中写明了备注。import java.util.*;class Demo1{ public static void main(String[] args) { change(); System.out.println("************************"); ot.原创 2020-07-10 13:50:23 · 112 阅读 · 0 评论 -
【大数据开发】Java语言基础——多态、内部类、String类day09
一、多态多态的定义:父类的引用指向了子类的对象多态的前提条件:存在 继承 或 实现(指的是接口的实现,把接口看成是特殊的类)多态的弊端:对象只能使用父类或父接口中定义的行为,不能使用自己特有的功能多态的好处:方法的参数使用多态可以减少定义多个函数的麻烦,前提定义的功能可以被后期出现的对象使用解决多态存在的弊端方法 ---- 对象转型向下转型 ---- 对象由父类类型, 转型为子类类型, 即是向下转型向下转型, 存在失败的可能性。 如果引用实际指向的对象, 不是要转型的类型, 此时强制转换, 会原创 2020-07-10 08:48:44 · 94 阅读 · 0 评论