自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 新年的小随笔(对接三方接口)

新年的第一个需求就是对接三方接口下载文件,从对接三方接口到下载文件都值得我这个菜鸟记录一下。下载文件的功能不少见,对于响应来说,需要关注header里的filenam以及contentType类型。filename没什么解释的就是文件名,在拼接字符串的时候是通过URLEncoder.encode(文件全名,编码)。对于contentType,不同的文件格式有不同的MediaType。对接三方接口则是通过构建请求并获取响应内容。首先需要一个URL和HttpURLConnection对象。new URL(u

2022-02-07 16:30:17 111

原创 接口与抽象类的故事

接口和抽象类经常被同时提起,他们的区别大到了我都惊于他们要被比较,但由于接口这个好兄弟太常见了,那我们就来唠唠。接口的关键字是interface,抽象类是abstract class,这明显一个是类一个是接口啊喂。但我们看看经常被谈论的方法的区别,所谓抽象类的方法有普通方法和没有实现的抽象方法public abstract class hi { void hi(){ System.out.println("hi"); } abstract void bye();

2021-05-13 13:51:47 69

原创 网络编程那些躲不过的小基础

网络相关的话题其实很广,对于java的学习来说,我想分为这几个部分:网络基础知识,基本的网络编程,请求与响应的相关内容,额外的一些扩展。当然再开始探讨之前,也需要做好一些学习的准备,起码需要了解一些的是:java基础知识,IO流,多线程的基础知识,计算机网络相关等等。这里说明一下,不用太过于害怕这几条,起码这里你需要的只是:Java基础(就是起码懂怎么写最简单的代码),IO流(就是知道什么是IO和分为哪几种IO),多线程(就是说你起码要知道thread和runnable在代码里怎么写的),计算机网络(就是

2021-02-28 14:40:55 1070 4

原创 答应我别再连多线程的基础知识都说不出来了

想研究多线程的内容,起码有几个基础的概念你要知道吧。线程与进程,并发与并行,这个我猜你知道他们的区别。JUC也就是java并发包的名字你也得认识,这是一个5以后才有的包。一些线程安全和代码实现的话题也不在这部分讨论,今天我们,只说基础。所谓基础问题,我分为以下几个问题,多线程的实现,多线程的原理,线程池,线程的状态。这几个问题大家应该都不陌生,下面逐一进行讨论。所谓多线程的实现,无非三种方式,继承Thread,实现Runnable接口和实现Callable接口。那么他们之间有什么区别?首先由于ja

2021-02-26 16:04:33 98 1

原创 天天都会听到的锁与synchronized,这次好好聊一下。

这次的话题是有关synchronized和锁的相关讨论。对于这两个东西,我们应该知道什么?锁的膨胀升级?乐观锁悲观锁?可重入?CAS与ABA?synchronized的原理?先抛开这些问题,对于synchronized关键字本身,我觉得大家都或多或少的有一些了解,它作为一个关键字,代表了同步的意思。但我认为锁本身也比较抽象,所以我觉得这两个东西应该放在一起互相讨论。先说说能被我们所看到的synchronized关键字吧,由于它是关键字,所以讨论它的原理不应该局限于java的代码,应该放在编译后的字节码

2021-02-26 13:58:24 70

原创 【闲谈】他问到bean,就给他煮杯咖啡吧

java语言的前世今生也许大家都早有耳闻,这个最初诞生与sun公司的语言,最初的名字叫Oak,取自一棵树,但由于被人注册而不得不改名,最终改为了java,来自于他们爱喝咖啡的同事,灵感则是爪哇岛盛产的咖啡。java的图标大家也不陌生,就是一杯热咖啡。说起bean,也许你会想到javabean或者springbean。每每有人问起,你不妨展开想象,java是一杯咖啡,bean是豆子的意思,咖啡豆就是煮一杯咖啡的基础,javabean也是如此,它代表了实例,作为一门面向对象的语言,我们主要解决问题的方式就是对

2021-02-26 10:00:35 110 2

原创 你也许也想知道的ArrayList和LinkedList

ArrayList和LinkedList的区别就这?看看名字都知道,arraylist基于数组,linkedlist基于链表你问我他们的不同,数组的结构在查询时是通过索引,链表只能遍历。所以查询时arraylist更好。但在增删的时候,arraylist是一个变长的结构,所以要反复扩容改变长度,linkedlist只需要根据指针插入,所以增删时linkedlist更好。原理?就等你问了那我们讲一个增的例子呗。下面是ArrayList您请看elementData是一个Object数组size是

2021-02-25 19:05:15 106 2

原创 你是否也被java实现排序算法搞的头疼?

排序算法都是处理数据的一些思想,代码是次要的,重点还是学习如何处理问题的思想。排序一个最基本的前提肯定是比较后交换,所以基本在每个算法里都有swap(交换)的过程,这里都借助temp来实现。这里总结一部分排序算法,算法深似海,多了我自己总结完也记不住。只有3+1种。冒泡排序都学恶心了,这里不做过多讲解了。 void bubbleSort(int[] array){ for (int i = 0;i<array.length-1;i++){ for (

2021-02-25 17:48:51 81

原创 【闲谈】从Object开始,漫漫java路,我亦在途中

这篇都是浅尝则止,不针对问题,只是闲谈。对于每个学习java的人,最不陌生的应该都是封装继承多态吧。尤其是继承,也许你会说extends,也许你会想到单继承的特性,但其实每个类都是直接或间接的继承自Object类,这个大家也许不陌生,但具体的呢?我明明没写过extends,它为什么就继承了,而且它里面有什么。这些问题可能不会出现在你的代码中或者面试中,但不妨让我们秉着对技术的好奇来看看,我相信作为这样一种“万物起源”,它肯定也能帮助我们更好的学习java。Object类的继承是在编译阶段实现的,如果看到

2021-02-25 14:50:40 77

原创 什么?你也被问到JVM了

浅谈一下JVM里常见的几个问题吧面对面试题常见几个问题1.简单描述一下你了解的JVM2.类的加载3.谈谈GC垃圾回收吧当然还有很多可以说的话题,但这里仅对比较基础常见的问题进行探讨。(主要还是太难的我不会我也不敢乱写啊)JVM也叫java虚拟机,这对于每个学java的人都不陌生,由于我不会画画也不想找图,所以尽量都用语言来描述。大家可能都会知道的是jdk,jre与java虚拟机的关系,这不需要做过多陈述。我们一般谈的虚拟机默认都是hotspot虚拟机,这个可以输入java -version里看到

2021-02-24 00:51:55 164 2

原创 ArrayList和Vector竟然又被提起

Arraylist和vectorCopyOnWriteArrayListVector是线程同步的,可以由两个线程安全的访问一个Vector对象,但是一个线程访问Vector的话代码要在同步上消耗大量的时间。Vector扩容一次为原来的两倍ArrayList不是同步的,所以在不要求线程同步的情况下建议使用ArrayList,需要时使用CopyOnWriteArrayList。ArrayList一次扩容为1.5倍Vector和CopyOnWriteArrayListVector中有synchroniz

2021-02-22 13:04:57 1723 7

原创 浅谈synchronized与volatile以及lock的爱恨情仇

多线程里的安全(volatile,synchronized,lock)主要是为了保证三大特性:可见性,原子性,有序性想看多线程安不安全,得先知道一个东西:JMM(java内存模型)浅谈一下就是对于JMM来说,变量一开始存放在一个主内存,当有cpu线程想执行操作时,需要把变量读取到一个自己的工作内存来进行操作,最后全部操作结束在放回主内存供大家后续读取。这里对于变量一共有八大操作:lock, unlock, write, read, assign, load, use, store这些操作都是原子

2021-02-22 12:52:17 492 12

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除