Java
文章平均质量分 59
小孩与狗
这个作者很懒,什么都没留下…
展开
-
Java高级常见题型
Java高级Linux常用命令:service (centos6)注册在系统中的标准化程序有方便统一的管理方式(常用的方法)service 服务名 startservice 服务名 stopservice 服务名 restartservice 服务名 reloadservice 服务名 status查看服务的方法 /etc/init.d/服务名通过chkconfig命令设置自启动查看服务 chkconfig --list|grep xxxchkconfig --leve原创 2021-02-26 22:05:19 · 100 阅读 · 0 评论 -
Javase常见题型
Javase常见题型1. 自增变量public class Test { public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i * i++; System.out.println("i=" + i); System.out.println("j=" + j); System.out.println("k=" + k); }}j=1,i=4,k原创 2021-02-25 17:24:20 · 175 阅读 · 0 评论 -
Java常见题型
要求:使用定时器,间隔 4 秒执行一次,再间隔 2 秒执行一次,以此类推执行package multiThread; import java.util.Calendar;import java.util.Timer;import java.util.TimerTask; public class TimerTest extends TimerTask { private static volatile int count = 0; @Override public vo原创 2021-02-23 18:02:36 · 2247 阅读 · 0 评论 -
Java日期获取
如何取得年月日、小时分钟秒?public class DateTimeTest { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); System.out.println(cal.get(Calendar.YEAR)); System.out.println(cal.get(Calendar.MONTH)); // 0 - 11原创 2021-02-23 10:01:48 · 321 阅读 · 1 评论 -
抓取部分京东手机信息案例(Java案例)
抓取部分京东手机信息案例1. 环境搭建导入数据库// 创建crawler数据库, 再创建表CREATE TABLE `jd_item` ( `id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键id', `spu` bigint(15) DEFAULT NULL COMMENT '商品集合id', `sku` bigint(15) DEFAULT NULL COMMENT '商品最小品类单元id', `title` varchar(10原创 2021-02-09 09:39:58 · 267 阅读 · 1 评论 -
Java爬虫
网络爬虫 网络爬虫( web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫介绍 在大数据时代,信息的采集是一项重要的工作,而互联网中的数据是海量的,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高。如何自动高效地获取互联网中我们感兴趣的信息并为我们所用是一个重要的问题,而爬虫技术就是为了解决这些问题而生的。 网络爬虫( web crawler)也叫做网络机器人,可以代替人们自动地在互联网中进行数据信息的采集与整理。它是一种按照一定的规则原创 2021-02-09 09:37:08 · 186 阅读 · 1 评论 -
Java动态代理
动态代理动态代理的特点字节码随用随创建,随用随加载。它与静态代理的区别也在于此。因为静态代理是字节码一上来就创建好,并完成加载。装饰者模式就是静态代理的一种体现。动态代理常用的有两种方式基于接口的动态代理提供者:JDK 官方的 Proxy 类。要求:被代理类最少实现一个接口。基于子类的动态代理提供者:第三方的 CGLib,如果报 asmxxxx 异常,需要导入 asm.jar。要求:被代理类不能用 final 修饰的类(最终类)。使用 JDK 官方的 Proxy 类创建代理对象/*原创 2021-02-04 22:44:06 · 124 阅读 · 1 评论 -
Java常见的异常
Java常见的异常异常名称异常的原因Exception异常层次结构的根类NullPointerException空指针异常类ClassCastException类型强制转换异常ClassNotFoundException指定的类不存在异常ArithmeticExecption算术异常类NegativeArrayException数组负下标异常ArrayIndexOutOfBoundsException数组下标越界异常Secturi原创 2020-08-26 17:10:26 · 85 阅读 · 0 评论 -
HashMap、Hsahtable简介及区别
HashMap简介HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。HashMap 实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能被克隆。HashMap存数据的过程是:HashMap内部维护了一个存储数据的Entry数组,Hash原创 2020-08-26 10:25:23 · 331 阅读 · 0 评论 -
注解
注解:概念:说明程序的。给计算机看的注释:用文字描述程序的。给程序员看的定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。作用分类:①编写文档:通过代码里标识的注解生成文档【生成文档doc文档】②代码分析:通过代码里标识的注解对代码进行分析【使用反射】③编译检查:通过代码里标识的注解让编译器能够实现基本的编译原创 2020-08-17 12:45:10 · 83 阅读 · 0 评论 -
Junit单元测试、反射
Junit单元测试:测试分类:黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。功能测试。白盒测试:需要写代码的。关注程序具体的执行流程。灰盒测试:既有一些功能使用黑盒测试又有一些功能白盒测试。Junit使用:白盒测试定义一个测试类(测试用例)测试类名:被测试的类名Test CalculatorTest包名:xxx.xxx.xx.test com.xxx.test定义测试方法:可以独立运行方法名:test测试的方法名 testAdd()返回值:void参原创 2020-08-13 18:39:10 · 177 阅读 · 0 评论 -
Stream流、方法引用(方法引用符)
Stream流遍历是指每一个元素逐一进行处理,而并不是从第一个到最后一个顺次处理的循环。前者是目的,后者是方式。filter 、 map 、 skip 都是在对函数模型进行操作,集合元素并没有真正被处理。只有当终结方法 count 执行的时候,整个模型才会按照指定策略执行操作。而这得益于Lambda的延迟执行特性。“Stream流”其实是一个集合元素的函数模型,它并不是集合,也不是数据结构,其本身并不存储任何元素(或其地址值)。Stream(流)是一个来自数据源的元素队列元素是特定类型的对象原创 2020-08-13 18:38:07 · 687 阅读 · 0 评论 -
网络编程、TCP通信程序
网络编程软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。(必须下载客户端,支持一定的离线功能)B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。(可以通过网址直接访问,不需要下载客户端,必须在线浏览)两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。网络编程三要素协议**网络通信协议:**通信协议是对计算机必须原创 2020-08-12 16:19:15 · 634 阅读 · 0 评论 -
缓冲流、转换流、序列化流、打印流
缓冲流、转换流、序列化流、打印流缓冲流缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类:字节缓冲流: BufferedInputStream , BufferedOutputStream字符缓冲流: BufferedReader , BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。字节缓冲流构造方法public BufferedInput原创 2020-08-10 15:01:04 · 93 阅读 · 0 评论 -
IO流、字节流与字符流、属性集(properties)
IO概述一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和 输出output ,即流向内存是输入流,流出内存的输出流。IO的分类根据数据的流向分为:输入流和输出流。输入流 :把数据从 其他设备 上读取到 内存 中的流。输出流 :把数据从 内存 中写出到 其他设备 上的流。格局数据的类型分为:字节流和字符流。字节流 :以字节为单位,读写数据的流。字符流 :以字符为单位,读写数据的流。输入流输出流字节流字节输入流 InputStream字节输原创 2020-08-08 17:50:06 · 304 阅读 · 0 评论 -
File类、递归
File类java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作构造方法public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新原创 2020-08-06 16:47:34 · 143 阅读 · 0 评论 -
函数式接口、函数式编程
函数式接口有且仅有一个抽象方法的接口。修饰符 interface 接口名称 { public abstract 返回值类型 方法名称(可选参数信息); // 其他非抽象方法内容 }接口当中抽象方法的 public abstract 是可以省略的。@FunctionalInterface注解该注解可用于一个接口的定义上,一旦使用该注解来定义接口,编译器将会强制检查该接口是否确实有且仅有一个抽象方法,否则将会报错。需要注意的是,即使不使用该注解,只要满足函数式接口的定义,这仍然原创 2020-08-06 16:46:33 · 112 阅读 · 0 评论 -
等待唤醒机制、生产者与消费者问题、线程池、Lambda表达式
等待唤醒机制线程间通信**概念:**多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。为什么要处理线程间通信:多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需要一些协调通信,以此来帮我们达到多线程共同操作一份数据。如何保证线程间通信有效利用资源:多个线程在处理同一个资源,并且任务不同时,需要线程通信来帮助解决线程之间对同一个变量的使用或操作。 就是多个线程在操作同一份数据时, 避免对同原创 2020-08-06 16:45:37 · 187 阅读 · 0 评论 -
线程安全、线程同步与线程状态,StringBuffer、StringBuilder和ArrayList、Vector的区别
线程安全线程安全如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。线程同步当我们使用多个线程访问同一资源的时候,且多个线程中对资源有写的操作,就容易出现线程安全问题。为了保证每个原创 2020-08-04 17:29:24 · 385 阅读 · 0 评论 -
多线程的认识及创建多线程的三种方式
多线程并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。而在多个 CPU 系统中,则这些可以并发执行的程序便可以分配到多个处理器上(CPU),实现多任务并行执行,即利用每个处理器来处理一个可以并发执行的程序,这原创 2020-08-04 17:26:37 · 177 阅读 · 0 评论 -
异常
异常异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理(先在控制台上展示异常信息,然后终止程序的运行)。异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行.异常体系异常机制其实是帮助我们找到程序中的问题,异常的根类是 java.lang.Throwable ,其下有两个子类:java.lang.Error原创 2020-08-03 18:29:25 · 145 阅读 · 0 评论 -
Map集合
Map集合Collection 中的集合,元素是孤立存在的,向集合中存储元素采用一个个元素的方式存储。Map 中的集合,元素是成对存在的。每个元素由键与值两部分组成,通过键可以找对所对应的值。Collection 中的集合称为单列集合, Map 中的集合称为双列集合。需要注意的是, Map 中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。通过键可以找到对应的值,键唯一(值可以重复),键和值一一映射,一个键对应一个值,靠键维护他们的关系Map常用子类HashMap:存储数据采用原创 2020-07-31 17:23:40 · 155 阅读 · 0 评论 -
Collections类
Collections常用功能public static boolean addAll(Collection c, T… elements) :往集合中添加一些元素。public static void shuffle(List<?> list) 打乱顺序 :打乱集合顺序。public static void sort(List list) :将集合中元素按照默认规则排序。public static void sort(List list,Comparator<? sup原创 2020-07-29 19:11:56 · 153 阅读 · 0 评论 -
List集合(ArrayList集合、LinkedList集合)、Set接口(HashSet、LinkedHashSet)、可变参数
LIst集合java.util.List 接口继承自 Collection 接口,是单列集合的一个重要分支,在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。List接口特点:它是一个元素存取有序的集合。它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。集合中可以有重复的元素,通过元素的equals方法,来原创 2020-07-29 19:09:35 · 277 阅读 · 0 评论 -
数据结构
数据结构(数据的存储结构)数据常见的存储结构有:栈、队列、数组、链表和红黑树。栈栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。特点:先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)。栈的入口、出口的都是栈的顶端位置。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZxSLj5ef-1596020756666)(E:\培训\java基础\12\原创 2020-07-29 19:06:10 · 128 阅读 · 0 评论 -
Collection集合、Iterator迭代器、增强for、泛型、泛型通配符
Collection集合java.util.Collection集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,集合和数组的区别?数组的长度是固定的。集合的长度是可变的。数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。单列集合java.util.Collection双列集合java.util.Map[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下原创 2020-07-28 17:17:44 · 122 阅读 · 0 评论 -
Calendar创建对象及使用
Calendar创建对象及使用public class CalendarDemo { public static void main(String[] args) { Calendar cal = Calendar.getInstance();// 一个静态方法,返回的是子类对象(多态) // 使用add方法 cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天 cal.add(Calendar.YEA原创 2020-07-28 10:05:26 · 2339 阅读 · 0 评论 -
Object类、Objects类、Date类、DateFormat类、Calendar类、System类、StringBuilder类、包装类及其装箱与拆箱
Object类java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。如果一个类没有特别指定父类,那么默认则继承自Object类。public String toString():返回该对象的字符串表示。public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。toString方法toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值(默认)。覆盖重写p原创 2020-07-27 15:52:11 · 124 阅读 · 0 评论 -
基本数据类型与字符串之间的转换
String类中内置的方法很多,所以会有时候我们会选择将基本数据类型转换为字符串然后使用内置的方法 那么这里我们也分为两个方面:(1)基本类型转换为字符串 基本类型转换为字符串的方法有三种方法:①使用包装类中的toString()方法②使用String类的valueOf()方法③加入空字符String i = Integer.toString(h);//使用包装类中的toString()方法String i = String.valueOf(h);//使用String类的valueOf()方法原创 2020-07-27 15:49:32 · 2468 阅读 · 0 评论 -
final关键字、权限修饰符、内部类、引用类型总结
final关键字、权限修饰符、内部类、引用类型总结final关键字final: 不可改变。可以用于修饰类、方法和变量。类:被修饰的类,不能被继承。方法:被修饰的方法,不能被重写。变量:被修饰的变量,不能被重新赋值。修饰类final class 类名 { }修饰方法修饰符 final 返回值类型 方法名(参数列表){ //方法体}修饰变量局部变量——基本类型基本类型的局部变量,被final修饰后,只能赋值一次,不能再更改。局部变量——引用类型引用类型的局部原创 2020-07-26 14:46:12 · 119 阅读 · 0 评论 -
Java多态
多态一个变量在编译时期和运行时期类型不同编译看左边,运行看右边编译时是状态就是声明的类型,运行时状态就是初始化的类型多态: 是指同一变量,具有多个不同表现形式。前提:继承或者实现【二选一】方法的重写【意义体现:不重写,无意义】父类引用指向子类对象【格式体现】父类类型 变量名 = new 子类对象;变量名.方法名();父类类型:指子类对象继承的父类类型,或者实现的父接口类型。 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果原创 2020-07-26 14:45:28 · 176 阅读 · 0 评论 -
Java接口
接口与多态接口(更为抽象的抽象类,不是类)接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。接口的定义,它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。引用数据类型:数组,类,接口。接口的使用,它不能创建对象,但是可以被实现( i原创 2020-07-26 14:45:03 · 117 阅读 · 0 评论 -
继承、抽象类与super、this关键字
继承、抽象类继承多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。其中,多个类可以称为子类,单独那一个类称为父类、超类(superclass)或者基类。继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。好处提高代码的复用性。类与类之间产生了关系,是多态的前提。class 父类 { ...}class 子类 extends 父类 {原创 2020-07-23 18:45:06 · 392 阅读 · 0 评论 -
字符串与字节数组及字符数组的转化
字符串与字符数组的相互转化public static void main(String[] args) { String myString = "hello123"; //创建一个字符串变量myString char[] myCharArray; //创建一个字符数组myCharArray myCharArray = myString.toCharArray(); //将字符串变量转换为字符数组 System.out.println(myCharArray); fo原创 2020-07-23 11:07:24 · 2271 阅读 · 0 评论 -
static关键字
static关键字关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。类变量当 static 修饰成员变量时,该变量称为类变量。该类的每个对象都共享同一个类变量的值。任何对象都可以更改该类变量的值,但也可以在不创建该类的对象的情况下对类变量进行操作。类变量:使用 static关键字修饰的成员变量。static 数据类型 变量名;静态方法当 static 修饰成员方法时,该方原创 2020-07-23 11:06:25 · 108 阅读 · 0 评论 -
java中打印char数组与ArrayList输出结果为值,而其他是地址值的原因
问题描述引用型变量存储的是对象实例的地址值,如果直接打印变量,输出的应该是地址值。数值型数组如int型数组:初始化后直接打印数组名,输出的是地址值。但是:char类型数组无论是new还是直接赋值初始化,直接打印后显示的居然不是地址值,而是数组内容。而ArrayList也会输出值而不是地址值原因分析char类型的数组就相当于一个字符串。因为输出流System.out是PrintStream对象,PrintStream有多个重载的println方法,其中一个就是public void println原创 2020-07-22 17:08:14 · 1955 阅读 · 0 评论 -
Java中的常用类(Scanner类、Random类、ArrayList类、 Strings类、Array类、Math类)的说明及基本使用方法
常用类API(Application Programming Interface)概述API(Application Programming Interface),应用程序编程接口(文档说明书)。Java API是一本程序员的 字典 ,是JDK中提供给我们使用的类的说明文档。API使用步骤打开说明文档。打开索引,搜索查询的类名。查看该类所属的包,java.lang下的类不需要导包,其他需要(idea自动导包)。查看该类的构造器,明白如何使用该类创建对象。查看该类的成员方法,明白该类的使用原创 2020-07-22 10:34:41 · 338 阅读 · 0 评论 -
类与对象、封装、构造方法
类与对象、封装、构造方法**特点:**三大基本特征,即封装、继承和多态。类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。属性:就是该事物的状态信息。行为:就是该事物能够做什么。对象:是一类事物的具体体现。对象是类的一个实例(对象并不是找个女朋友),必然具备该类事物的属性和行为。类与对象的关系类是对一类事物的描述,是抽象的。对象是一类事物的实例,是具体的。类是对象的模板,对象是类的实体。成员变量:对应事物的属性成员方法:原创 2020-07-20 18:40:06 · 140 阅读 · 0 评论 -
idea快捷方式及数组的基本操作
开发工具ideaidea常用的快捷方式:快捷键功能Alt+Enter导入包,自动修正代码Ctrl+Y删除光标所在行Ctrl+D复制光标所在行的内容,插入光标位置下面Ctrl+Alt+L格式化代码Ctrl+/单行注释Ctrl+Shift+/选中代码注释,多行注释,再按取消注释Alt+Ins自动生成代码,toString,get,set等方法Alt+Shift+上下箭头移动当前代码行方法修饰符 返回值类型 方法名(参数列表原创 2020-07-17 15:29:46 · 1289 阅读 · 0 评论 -
Java基本语法1
关键字:用于定义数据类型的关键字class interface enum byte short int long float double char boolean void用于定义流程控制的关键字if else switch case default while do for break continue return用于定义访问权限修饰符的...原创 2020-03-30 20:30:34 · 107 阅读 · 0 评论
分享