
java
菜鸟也学大数据
这个作者很懒,什么都没留下…
展开
-
用JAVA实现MapReduce
这里的MapReduce实现的是分词计数pom.xml文件版本号需要跟你自己安装的hadoop版本号一样hadoop-commonhadoop-hdfshadoop-authhadoop-clienthadoop-mapreduce-client-corehadoop-mapreduce-client-jobclient<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.ap.原创 2020-09-18 09:31:36 · 2626 阅读 · 0 评论 -
用JAVA现实Hadoop任务
一.JAVA部分maven需要提前自行安装第一步:使用idea新建maven项目第二步:填入项目名/包名第三步:选择自己maven的安装路径第四步:选择项目存放位置,最后finish第五步:右下角会有个弹框选择第六步:在项目列表选择pom.xml第七步:修改pom.xml文件(修改完后版本号字体会是红色,右下角会有下载进度条,等待完成即可)如何该部分遇到问题,可能是下载没成功,可以根据错误提示查找处理方法<?xml version=原创 2020-09-15 17:09:48 · 402 阅读 · 0 评论 -
如何实现一个简易网页登录功能
这篇文章具体实现了接收从网页输入的数据与数据库中数据进行匹配并返回结果的这个一个简易登录功能第一步:设置xml文件<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:原创 2020-08-24 22:37:14 · 4280 阅读 · 0 评论 -
JAVA如何连接数据库并操作增、删、改、查---JDBC了解一下
一.什么是JDBC全称:Java DataBase Connectivity概述:ava数据库连接技术(Java DataBase Connectivity),能实现Java程序对各种数据库的访问,由一组使用Java语言编写的类和接口(JDBC API)组成,它们位于java.sql以及javax.sql中JDBC访问流程1.Class.forName() //加载驱动2.DriverManager //获取Connection连接3.Statement //执行SQL语句4.返回Resul原创 2020-08-22 22:44:24 · 254 阅读 · 0 评论 -
1分钟带你了解什么是正则表达式
一.初识正则表达式作用正则表达式描述了一种字符串匹配的模式,也称规则表达式常用于检索、替换符合指定模式(规则)的文本写法正则表达式是由普通字符与特殊字符组成的字符串特殊字符:* + ? $ ^ . | \ ( ) { } [ ]示例示例1:hello 可以匹配“hello”示例2:h.*llo 可以匹配“hello”、“hallo”、“heello”……特殊字符预定义字符二.如何在JAVA使用 Pattern pattern=Pattern.compile原创 2020-08-12 10:59:39 · 661 阅读 · 0 评论 -
JAVA高级知识点总结
一.集合框架List:有序/可重复- ArrayList:长度可变的数组,便于查找和随机访问- LinkedList(Node):双向链表,便于插和删除Set:无序/唯一- HashSet:HashMap的key(由HashCode()和equals()方法共同保证不重复),常用于去重Map:底层是Entry<K,V>键值对遍历:- List:fori,增强for,迭代器- Set:增强for- Map:entrySet(),keySet(),values();泛型:限定原创 2020-08-11 09:28:00 · 695 阅读 · 0 评论 -
简述什么是反射以及反射的使用
一.什么是反射在了解反射之前我们需要先简单来了解一下类加载的过程在类加载的过程中,第一步JVM(JAVA虚拟机)将A.class文件读入内存方法区,第二步JVM为A.class创建唯一的Class类的对象,而Class对象是后面访问方法区对应数据的入口在之前的学习的中,我们通常会用到class关键字,但这里说的Class非彼class,Class在java中是个实际存在的类型,而Class是后面反射需要经常用到的一个类型前面提到在类加载的过程中,会将所有类型生成对应的Class对原创 2020-08-09 14:24:36 · 3096 阅读 · 1 评论 -
如何处理多线程数据共享引发的问题--synchronized了解一下
一.什么是synchronizedsynchronized就是为当前的线程声明一把锁,只有当当前线程执行完成后,其他线程才可以执行后续操作synchronized的使用a.使用synchronized修饰的方法控制对类方法的访问:访问修饰符 synchronized 返回类型 方法名(参数列表){……}b.使用synchronized来控制执行的代码块:synchronized(this){…};二.如何处理多线程数据共享引发的问题首先我们来看一下示例代码多线程抢票程序原创 2020-08-06 12:40:00 · 321 阅读 · 0 评论 -
什么是多线程/怎么使用多线程(Thread/Runnable)
一.什么是多线程首先我们要分清什么是线程什么是进程进程:应用程序的的执行实例有独立的内存空间和系统资源线程:CPU调度和分派的基本单位应用程序的执行示例什么是多线程?a.如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为“多线程b.多个线程交替占用CPU资源,而非真正的并行执行主线程:a.main()方法为主线程的入口b.产生其他子线程的线程c.必须最后执行完成,因为它执行各种关闭动作显示主线程名并修改public static void main(Stri原创 2020-08-06 11:57:54 · 1373 阅读 · 0 评论 -
I/O流的高级用法又称高级流
一.什么是高级流高级流不能直接作用于文件,需要装载普通流或转换流高级流可分为:缓冲流/二进制流/对象流缓冲流:BufferedReader/BufferedWriter类二进制流:DataInputStream/DataOutputStream类对象流:ObjectInputStream/ObjectOutputStream类二.缓冲流的用法缓冲流具有缓冲区,其.readLine()可以读取一行的数据,可以提高文件读取效率操作步骤:1.创建文件对象2.创建流对象并载入文件对象3.原创 2020-08-05 13:24:40 · 411 阅读 · 0 评论 -
什么是I/O流以及怎么使用I/O流
一.什么是I/O流I/O即对应的输入(IN)/输出(OUT),在Java也对应的是InputStream/OutputStream抽象类而流是一组有序的数据序列以先进先出的原则发送信息的通道二.通过File类来操作文件创建File类对象(参数对应的是操作文件的地址)public class TestFile { public static void main(String[] args) { File file=new File("D:/1.txt");//在D原创 2020-08-04 12:33:26 · 1932 阅读 · 0 评论 -
如何重写Collections的排序方法
一.概述在使用集合时,往往会将类的对象传入集合中,但当我们需要排序时,原有的.sort无法根据系统的规则来排序,所有这个时候需要我们重写排序规则第一步:需要将传入集合的对象类绑定接口Comparablepublic class Studen implements Comparable {第二部:重写方法compareTopublic int compareTo(Object o) {第三步:在方法内实现判断标准二.代码示例先创建个学生类,定义一个序号,和姓名的属性/**原创 2020-07-31 11:49:25 · 651 阅读 · 0 评论 -
什么是泛型/泛型的用法
一.泛型的作用是什么泛型是可以设定方法,类,集合等传入的类型,减少转型等操作代码示例(不是使用泛型):public class Test { public static void main(String[] args) { ArrayList arrayList=new ArrayList();//定义一个集合 arrayList.add(1);//存入整形 arrayList.add("a");//存入字符串 arrayLi原创 2020-07-31 11:19:24 · 446 阅读 · 1 评论 -
1分钟了解什么是枚举/以及枚举的使用
一.枚举是什么?枚举是可以限制属性接收的对象。看个例子:public class Test { public String sex;//定义一个存储性别的属性 public static void main(String[] args) { Test test=new Test(); test.sex="你好";//???性别属性能输入你好? }}当然,规范属性的输入,我们可以封装属性,或判断输入内容来操作但枚举可原创 2020-07-31 10:57:14 · 5073 阅读 · 0 评论 -
快速排序算法--这么有价值的东西不了解一下?
概述通俗易懂版:有一个数组,数组的第一位设为基准为,所有比基准位小的都置于左侧(这里默认升序),所有比基准位大的置于右侧,此时原来的基准为现在就在数组中间,这样第一轮排序完成,这时将基准位的两侧都当初新的数组,重复执行上面的操作,每一个新数组都会分成两个新数组,一直执行下去,直到只剩一位,不能在分时,代表,排序完成,return!那么怎么来完成以上要求呢?现在来分布执行一下步骤:先定义个一个变量tmp,保存一下基准位现在需要一个while循环,从数组的最后一位开始跟基准位比较,如果比基准小,那么我原创 2020-07-31 10:25:13 · 116 阅读 · 0 评论 -
简述HashMap的使用
一.Map接口概述:Map接口的实现类存储的键值对(Map.Entry<K,V>),key与value一一对应,其中Kay键对应的是Set的存储结构,Value值对应的是collection的存储结构因为set本身是无序且不可重复的,所有key键同样符合次标准,但value值可以重复二.HashMapMap的具体实现类常用的操作方法/** * @ Author: Zhangyu * @ Date: 2020/7/30 * @ Description: */publi原创 2020-07-31 09:34:04 · 353 阅读 · 0 评论 -
集合的几种遍历方式--了解一下
由于set与map是无序的,所以只有两种遍历方式一.List的三种遍历方式list遍历/** * @ Author: Zhangyu * @ Date: 2020/7/30 * @ Description: */public class Test { public static void main(String[] args) { List list=new ArrayList(); list.add("a"); list.a.原创 2020-07-31 09:09:55 · 219 阅读 · 0 评论 -
简述Set以及HashSet的使用
collection的特点collection是无序,可重复的collection可分为1.List:list的特点是有序,可重复的list又可分为:ArrayList:底层是数组实现,特点,查询更快LinkedList:底层是双向链表,特点是,增删更快2.Set:set的特点是无需,且不可重复的,因为无序所以无下标...原创 2020-07-31 08:51:33 · 681 阅读 · 0 评论 -
ArrayList与LinkedList的使用以及区别
一.List的特点List本身是有序,可重复的,所以ArrayList与LinkedList也同样是这样二.ArrayListArrayList的底层原理是数组,当创建集合并传入第一个对象时初始长度是10,当一直传入对象直到达到容量最小值时,便会创建一个比原来长1.5倍的新数组,并将原来的数组内容,都转移至新数组,原有数组将被回收,但ArrayList的最大容量为0x7fffffff其数组存储方法,可以使ArrayList在遍历与查找的速度上更快一些增删查改等方法的使用import ja原创 2020-07-30 12:09:17 · 342 阅读 · 0 评论 -
集合框架视图精简版
集合框架视图虚线框都为接口,实线框都为具体实现类视图解析Collection为List与Set的父接口List下面有两个实现类:ArrayList、LinkedListSet下面有两个实现类:HashSet、TreeSet(HashSet会更常用一些)Map下面有两个常用实现类:HashMap、TreeMap(HashMap会更常用一些)Iterator的功能是为集合类提供遍历的功能右下角的Collections是为集合类提供相应功能的后面会单独对上面的某些内容详细展开.原创 2020-07-30 09:33:35 · 125 阅读 · 0 评论 -
如何手动抛出异常--throw、throws了解一下
一.thorw的使用在日常的开发中,我们往往会使用到手动抛出异常,这里就需要用到thorw关键字代码示例:/** * @ Author: Zhangyu * @ Date: 2020/7/27 * @ Description: */public class Test { public static void main(String[] args) { int num=1; try { if (num==1){原创 2020-07-27 13:35:05 · 1801 阅读 · 0 评论 -
finally的作用以及使用
一.finally的作用在try-catch捕获异常语句后还可以加上finally语句块作用:finally不论是否抛出异常都会执行,即使在有返回值并且已执行return语句后,也会执行finally语句块,但return返回的结果不会改变示例:在抛出异常的情况下/** * @ Author: Zhangyu * @ Date: 2020/7/27 * @ Description: */public class Test { public static void main(St原创 2020-07-27 12:18:25 · 4439 阅读 · 0 评论 -
什么是异常以及常见的异常类型有哪些
一.什么是异常概述:异常就是在咱们日常撸代码时,代码在运行期可能会发生的执行异常,所以我们需要将部分可能会出现相应问题的代码进行异常捕获,并处理举例:现在需要将两个整数相除,但被除数为0,此时程序并不会报错但执行后便会报错而这个报错异常则提示算数异常,并显示出是因为/by zero ,在第8行异常是分异常类型的,ArithmeticExcption则是算数异常类型二.异常体系结构以及常见的异常类型有哪些常见的异常类型异常类型说明ArithmeticExcep原创 2020-07-27 12:15:21 · 9120 阅读 · 0 评论 -
什么是接口、以及接口的定义与使用--interface了解一下
一.什么是接口举个栗子:一部笔记本,连接着鼠标,键盘,u盘等,笔记本就是类,其他外设都是接口,接口的作用往往是为扩展功能,一个类可以有多个接口,但只能有一个父类,接口存在的意义就是弥补父类的扩展性使用接口的要求a.接口是一个抽象类,同样不能被实例化b.接口中的方法,都是抽象方法c.接口中的属性,只能是静态常量对抽象类有疑问的小伙伴可以移步我的另一篇关于抽象类的博文什么是抽象类二.接口的定义与使用使用interface定义接口使用接口(使用implements绑定接口)/原创 2020-07-24 12:14:04 · 518 阅读 · 0 评论 -
什么是抽象类、以及抽象类的定义与使用--abstract了解一下
一.什么是抽象类见名思其意,抽象即不是实际存在的,在class前加abstract关键字来定义当前类为抽象类抽象类的使用要求a.抽象类本身是不能被实例化的,但允许作为引用类型,由非抽象子类对象实例化b.抽象类可以有没有抽象方法,但有抽象方法所在的类必须是抽象类c.抽象方法不能有方法体d.子类必须实现父类的抽象方法,否则子类也需要定义为抽象类e.没有抽象构造方法,也没有抽象静态方法f.抽象类可以有非抽象构造方法,创建子类的时候可以调用二.抽象类的定义与使用定义//加上abstra原创 2020-07-24 11:49:15 · 576 阅读 · 0 评论 -
1分钟了解什么是多态以及多态的使用
一.什么是多态简述:就是由同一个事物,由于条件不同,产生的结果也不同多态:相同的引用类型,不同的实例而执行的不同操作二.代码示例//创建一个打印类public class Print { public void prints(){ System.out.println("打印"); }}//创建个黑白打印类继承打印类public class BWprint extends Print{ public void prints(){原创 2020-07-23 10:30:41 · 863 阅读 · 1 评论 -
重写与重载的区别、重写的规则与使用
一.重写与重载的区别具体的重载在我之前的博文有写过,有兴趣的小伙伴可以看一下。二.方法重写的规则重写方法所在的类要与原方法类为继承关系方法名相同参数列表相同返回值类型相同或是父类返回值的子类访问修饰符不能严于父类抛出的异常不能多余父类父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法(注:静态方法中无法使用super)父类的私有方法不能被子类覆盖三.代码示例先创建一个父类并原创 2020-07-23 09:09:11 · 472 阅读 · 0 评论 -
简述封装的作用与使用方式
一.封装的作用概述:在之前我们学习的过程中,通常会直接对属性赋值修改,但在实际开发中,往往可能会存在输入不合法的情况,所以对,属性封装可以保护属性的内容合法不合法示例:/** * @ Author: Zhangyu * @ Date: 2020/7/22 * @ Description: */public class Test1 { int height;//定义一个身高属性 public static void main(String[] args) {原创 2020-07-22 10:12:31 · 1174 阅读 · 0 评论 -
访问修饰符的作用范围示图
一.作用范围访问修饰符作用范围public公共的(全工程都可使用)protected包及子类(同个包下以及不同包下的子类都可以使用)默认包(当前类所在的包内都可以使用)private私有的(仅自己可见)...原创 2020-07-22 09:47:37 · 609 阅读 · 0 评论 -
static的作用与使用方式
一.static的作用概述:在前面的博文提到,类其实就是一个摸具,当创建对象时,便会拥有类的全部属性与方法,并且与其他对象的属性是无关联的,但当某一个属性前加上static后,则会变成所有对象共同拥有当前这个属性,如若有对象修改这个属性,那其他对象,调用时,也会变成修改后的内容举例:爸爸有100块钱,儿子也可以使用这笔巨额,但当爸爸消费后,还剩5元时,儿子所能支配的也仅有这剩下的钱。/** * @ Author: Zhangyu * @ Date: 2020/7/22 * @ Des原创 2020-07-22 09:33:44 · 542 阅读 · 0 评论 -
什么是构造方法
一.何为构造方法概述构造方法是,当程序实例化一个类的对象时,自动执行的一段初始化代码,如果我们没有手段添加时,程序会自动添加一个无参构造器,当我们在代码中手动添加了有参构造器时,程序便默认不在生产无参构造器,如代码需要用到无参构造器,可以手动添加显式无参构造器注意:构造器是没有返回值的,连void也 是不可以的,否则会变成普通方法使用无参构造方法的定义//构造器名必须和类名相同,以及大小写[访问修饰符] 类名(){//构造器代码块}有参构造方法的定义[访问修饰符] 类名(数据原创 2020-07-21 09:56:17 · 3328 阅读 · 0 评论 -
什么是方法的重载
一.方法的重载概述方法的重载含义是,在原有方法上在写一个与原方法名相同的方法,但要求是参数必须不同,参数类型或数量的改变使用在调用时,代码会根据您所传递的参数在匹配符合的方法。代码演示/** * @ Author: Zhangyu * @ Date: 2020/7/21 * @ Description:方法重载 */public class Test { public void csdn(){//定义方法csdn System.out.print原创 2020-07-21 09:42:39 · 6427 阅读 · 1 评论 -
JAVA中如何定义方法
一.何为方法概述方法即定义在类当中,通常定义完成某个功能,当需要使用时,可直接调用,以及重复使用,对代码的使用与维护更加方便二.无参方法概述无参方法即,在调用时,无需传入参数即可完成指定操作。定义[访问修饰符] 返回值类型 方法名(){//返回值可以是void,如果是void,可以去除return//代码块;return 返回值;}三.有参方法概述有参方法即,在调用时,需要传入参数才可完成指定操作。定义[访问修饰符] 返回值类型 方法名(参数类型 参数1,参数类型原创 2020-07-21 09:26:36 · 3813 阅读 · 0 评论 -
简述二分查找算法原理
一.二分查找概述举例:当需要查找一个升序数组中是否包含某个数时,可以使用二分查找算法(要求数组必须有序),就是将数组的中间值与该数比较,若该数大于中间值,则表明在该数组中间值的右侧,反之亦然,这个时候,将改变起始值或末尾值在将该数,与重新选定的区域中间值判断,依次类推,直到结束二.代码示例/** * @ Author: Zhangyu * @ Date: 2020/7/20 * @ Description:二分查找前提条件,数组要有序 */public class Test_EF {原创 2020-07-20 09:48:27 · 1154 阅读 · 0 评论 -
StringBuffer以StringBuilder的区别
一.概述JAVA中StringBuffer,StringBuilder与String不同的地方在于前两者都是可以在原有对象基础上进行修改二.StringBufferStringBuffer的特点在于,StringBuffer是线程安全的(不能同步访问),但速度相对会劣势//创建方式StringBuffer str=new StringBuffer("www");//对str进行修改增加str.append(".csdn");str.append(".net");System.out.pri原创 2020-07-19 13:50:42 · 120 阅读 · 0 评论 -
类与对象的定义
一.什么是类/对象举个例子,在现实生活中"人"是一个类,"狗"也是一个类,而"张三"是个人,所以是"人"类的对象。而"旺财"是一只狗,所以是”狗“类的对象二.类的定义1.访问修饰符如public private等是可以选的2.class是声明类的关键字3.按照命名规范,类名首字母大写[访问修饰符] class 类名{//省略类的内部具体代码}//举例public class Person{//定义一个“人”类 }三.类的属性与方法每个类可以有自己的属性与方法。例如:”原创 2020-07-19 09:58:08 · 340 阅读 · 0 评论 -
简述十大排序算法中的冒泡排序 / 选择排序 / 插入排序
排序动图选自https://www.cnblogs.com/onepixel/articles/7674659.html该文有完整版本的算法介绍有兴趣的可以去看一下一.冒泡排序冒泡排序的逻辑是,将一个数组两两比较,如果不符合顺序就进行位置调换,在依次往下重复执行,当第一轮结束时,最后一位一定是最大,或者最小值。然后进行第二轮对比,已经确定的值,则不需要在进行对比2.代码实现import java.util.Arrays;/** * @ Author: Zhangyu * @ Dat.原创 2020-07-16 10:20:11 · 260 阅读 · 3 评论 -
数组与多维数组的定义与使用
一.数组简述数组是可以用于保存多个相同类型的数据。数组的定义分三步·创建对象·分配空间·赋值定义 int[] a;//仅定义一个数组对象a。 a=new int[5]; int[] b=new int[5];//5代表该数组的长度 int[] c={1,2,3,4,5};//在创建对象时就赋值,可以new int[],因为数值时系统会自动根据数值长度分配空间使用数组的使用是通过数组下标来找到原创 2020-07-16 09:18:38 · 410 阅读 · 0 评论