![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java基础
文章平均质量分 78
java基础
Yaphets丶混世大魔王
这个作者很懒,什么都没留下…
展开
-
java开发规范(进阶版)
代码规范1️⃣、遵循代码整洁之道里面的规范。•一、函数要短小一个函数多小才算短小了? 20行封顶是最好的,最长不要超过一屏。 怎么让函数变短小,归纳几点: 一个函数只做一件事情,从逻辑上减小函数功能 if ,else 和for ,while 语句等,其中的代码块最理想是只有一行,就是一个函数调用语句。 一个函数里面的缩进层次不应该多于2层,for循环只能有一个,不要嵌套f...原创 2018-08-21 12:33:00 · 1894 阅读 · 0 评论 -
java面试题
本文主要是讲面试的那些基础点,包括java基础和高级进阶java的一些方向。主要包含了java核心基础,mysql优化,jvm调优等。原创 2017-05-23 23:58:07 · 2560 阅读 · 0 评论 -
算法导论之最优解算法--钢条切割问题扩展--流量充值问题
大家应该都知道算法导论里面有一个钢条切割问题,给定一个长度的钢条,按照不同方案切割卖出不同的价格,求那种切割方式能卖对多的钱。那么问题来了。(这个问题是我实际项目中遇到的一个问题)我现在有一个需求,需要给客户充值1G的流量,但是可选的条件只有100M的10块钱,200M的18块钱,500M的40块钱。这个怎么解决?请看详情分析原创 2017-05-16 16:37:36 · 1218 阅读 · 1 评论 -
java 生产者消费者模式
生产者消费者模式。public class Product { public int product = 0; public final static int MAX = 999; public final static int MIN = 0; public synchronized void produce(){ ...原创 2018-09-12 13:18:30 · 152 阅读 · 0 评论 -
ThreadLocal的设计理念与作用
ThreadLocal的设计理念与作用。在JDK的早期版本中,提供了一种解决多线程并发问题的方案: java.lang.ThreadLocal类.ThreadLocal类在维护变量时,实际使用了当前线程(Thread)中的一个叫做ThreadLocalMap的独立副本,每个线程可以独立修改属于自己的副本而不会互相影响,从而隔离了线程和线程,避免了线程访问实例变量发生冲突的问题.Thread...原创 2018-09-12 13:18:22 · 430 阅读 · 0 评论 -
ThreadPool用法与优势
ThreadPool用法与优势。(1). 引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线...原创 2018-09-12 13:18:13 · 1113 阅读 · 0 评论 -
Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等
Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。java.util.concurrent包分成了三个部分,分别是java.util.concurrent、java.util.concurrent.atomic和java.util.concurrent.lock。内容涵盖了并发集合类、线程池机制、同步互斥机制、线程安全的变量更新工具类、...原创 2018-09-12 13:18:06 · 388 阅读 · 0 评论 -
wait()和sleep()的区别
wait()和sleep()的区别。① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。② 锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或...原创 2018-09-11 19:14:55 · 129 阅读 · 0 评论 -
反射的作用于原理
反射的作用于原理。一、 原理 简单的来说,反射机制其实就是指程序在运行的时候能够获取自身的信息。如果知道一个类的名称/或者它的一个实例对象, 就能把这个类的所有方法和变量的信息(方法名,变量名,方法,修饰符,类型,方法参数等等所有信息)找出来。如果明确知道这个类里的某个方法名+参数个数 类型,还能通过传递参数来运行那个类里的那个方法,这就是反射。 尽管Java不是一种动态语...原创 2018-09-11 19:14:44 · 1590 阅读 · 0 评论 -
解析XML的几种方式的原理与特点:DOM、SAX、PULL
解析XML的几种方式的原理与特点:DOM、SAX、PULL。XML的解析方式有很多,光开源的就有十多种:如Xerces、JDOM、DOM4J、XOM、JiBX、KXML、XMLBeans、jConfig、XStream、XJR等。但是最常用的还是sax、dom、pull、dom4j而android中用的比较多的是 sax(Simple APIs for XML)、dom(Documen...原创 2018-09-11 19:14:35 · 2284 阅读 · 0 评论 -
设计模式:单例、工厂、适配器、责任链、观察者等等
单列Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任。从另一个角度来说,Singleton模式其实也是一种职责型模式。因为我们创建了一个对象,这个对象扮演了独一无二...原创 2018-09-11 19:14:27 · 860 阅读 · 0 评论 -
java排序
1. 选择排序这个排序方法最简单,废话不多说,直接上代码:public class SelectSort { /** * 选择排序 * 思路:每次循环得到最小值的下标,然后交换数据。 * 如果交换的位置不等于原来的位置,则不交换。 */ public static void main(String[] args) { ...原创 2018-09-11 19:14:20 · 155 阅读 · 0 评论 -
Calendar和GregorianCalendar日历类
Calendar和GregorianCalendar日历类Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的...原创 2018-10-16 15:26:00 · 1409 阅读 · 0 评论 -
springboot全局日期格式化
springboot全局日期格式化有两种方式springboot全局日期格式化有两种方式方式一是配置参数参数配置的方式就是在json序列化的时候,当字段为日期类型的时候的format类型,就相当于在所有日期字段上加了一个注解@JsonFormat(shape = JsonFormat.Shape.STRING, pat...原创 2019-06-06 10:44:43 · 11938 阅读 · 2 评论 -
java获取资源文件(Java中获取资源文件的url)
java开发中,常见的resource文件有:.xml,.properties,.txt文件等,后台开发中经常用到读取资源文件,处理业务逻辑,然后返回结果。获取资源文件的方法说明getResource()返回:URL getResourceAsStream () 返回的是inputstream,需要定义一个InputStream接收 ...转载 2019-07-08 20:22:21 · 4276 阅读 · 0 评论 -
锁的等级:方法锁、对象锁、类锁
锁的等级:方法锁、对象锁、类锁。对象锁(方法锁)是用来控制实例方法之间的同步,类锁是用来控制静态方法(或静态变量互斥体)之间的同步// 类锁:形式1public static synchronized void Method1()// 类锁:形式2public void Method2(){ synchronized (Test.class) { ...原创 2018-09-12 13:18:38 · 814 阅读 · 0 评论 -
线程同步的方法:sychronized、lock、reentrantLock等
线程同步的方法:sychronized、lock、reentrantLock等。如果你向一个变量写值,而这个变量接下来可能会被另一个线程所读取,或者你从一个变量读值,而它的值可能是前面由另一个线程写入的,此时你就必须使用同步。sychronizedJava语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码,它是在 软件层面依赖JVM实现同...原创 2018-09-11 19:13:57 · 317 阅读 · 0 评论 -
java全局异常处理
使用全局异常的好处是,不在需要去定义很多类型的返回值,当业务出错的时候直接通过异常的返回值方式来返回给前端或者API调用方错误信息。以前我们的处理方式是如果接口执行正确返回200编码加上正确的结果值,如果失败,返回错误码加上错误信息,这样就导致接口的返回值对象需要兼容正确返回和错误返回值两种情况,其实接口的返回值只需要返回你想要的对象或者列表就行了,错误信息统一交给全局异常处理搞定。使用全...原创 2018-08-21 12:43:42 · 8096 阅读 · 0 评论 -
spring参数注解校验
在写一些controller协议的时候,有些时候从前端传过来的参数较多,好的办法是定义一个实体类来封装请求参数,但是用实体类封装参数后,无法对参数值进行校验,可以使用spring的@Validated 结合java validation、hibernate validation注解进行校验。个人建议使用spring的Validated注解,而不要使用hibernate的validat注解,hi...原创 2018-08-21 13:01:51 · 6489 阅读 · 0 评论 -
java九种基本数据类型
九种基本数据类型的大小,以及他们的封装类。java提供了一组基本数据类型,包括boolean, byte, char, short, int, long, float, double, void.同时,java也提供了这些类型的封装类,分别为Boolean, Byte, Character, Short, Integer, Long, Float, Double, Void类...原创 2018-09-06 20:25:18 · 1035 阅读 · 0 评论 -
java Object有哪些公用方法
Object有哪些公用方法?Object是所有类的父类,任何类都默认继承Object。Object类到底实现了哪些方法?(1)clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方...原创 2018-09-06 20:26:13 · 500 阅读 · 0 评论 -
Hashcode的作用
Hashcode的作用。Hash是散列的意思,就是把任意长度的输入,通过散列算法变换成固定长度的输出,该输出就是散列值。关于散列值,有以下几个关键结论:1、如果散列表中存在和散列原始输入K相等的记录,那么K必定在f(K)的存储位置上2、不同关键字经过散列算法变换后可能得到同一个散列地址,这种现象称为碰撞3、如果两个Hash值不同(前提是同一Hash算法),那么这两个Hash值对应的...原创 2018-09-06 20:27:11 · 123 阅读 · 0 评论 -
Map、Set、List、Queue、Stack的特点与用法
Map、Set、List、Queue、Stack的特点与用法。Collection 接口的接口 对象的集合├ List 子接口 按进入先后有序保存 可重复│├ LinkedList 接口实现类 链表 插入删除 没有同步 线程不安全│├ ArrayList 接口实现类 数组 随机访问...原创 2018-09-06 20:28:12 · 480 阅读 · 0 评论 -
HashMap和HashTable的区别
HashMap和HashTable的区别。HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(va...原创 2018-09-06 20:28:45 · 105 阅读 · 0 评论 -
TreeMap、HashMap、LindedHashMap的区别
TreeMap、HashMap、LindedHashMap的区别。Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;...原创 2018-09-06 20:29:53 · 757 阅读 · 0 评论 -
try catch finally,try里有return,finally还执行么
try catch finally,try里有return,finally还执行么?(1)、不管有木有出现异常,finally块中代码都会执行;(2)、当try和catch中有return时,finally仍然会执行;(3)、在try语句中,try要把返回的结果放置到不同的局部变量当中,执行finaly之后,从中取出返回结果,因此,即使finaly中对变量进行了改变,但是不会影响返回结...原创 2018-09-06 20:30:50 · 1554 阅读 · 0 评论 -
Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况
Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况。 (1). ThrowableThrowable是 Java 语言中所有错误或异常的超类。Throwable包含两个子类: Error 和 Exception 。它们通常用于指示发生了异常情况。Throwable包含了其线程创建时线程执行堆栈的快照,它提供了printStackTrace()等接...原创 2018-09-06 20:31:48 · 433 阅读 · 0 评论 -
Java面向对象的三个特征与含义
Java面向对象的三个特征与含义。三大特征是:封装、继承和多态。封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在Java中能使用private、protected、public三种修饰符或不用(即默认defalut)对外部对象访问该对象的属性和行为进行限制。继承是子对象可以继承父对象的属性和行为,亦即父对...原创 2018-09-11 19:13:15 · 889 阅读 · 0 评论 -
Override和Overload的含义和区别
Override和Overload的含义和区别。(1). Override 特点 (01)、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果; (02)、覆盖的方法的返回值必须和被覆盖的方法的返回一致; (03)、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;(04)、方法被定义为final不能被重写。 (05)、对于继...原创 2018-09-11 19:13:25 · 2663 阅读 · 0 评论 -
Interface与abstract类的区别
Interface与abstract类的区别。(01).abstract class 在Java中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。(02).在abstract class 中可以有自己的数据成员,也可以有非abstarct的方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static fina...原创 2018-09-11 19:13:34 · 608 阅读 · 0 评论 -
实现多线程的两种方法:Thread与Runable
实现多线程的两种方法:Thread与Runable。实现多线程有两种方式:(自JDK1.5之后有三种,最后一种并不常用)(1).继承Thread类(2).实现Runnable接口(Callable接口)一个类如果实现了Runnable接口或者继承了Thread类,那么它就是一个多线程类,如果是要实现多线程,还需要重写run()方法,所以run() 方法是多线程的入口。但是在启动...原创 2018-09-11 19:13:45 · 1214 阅读 · 0 评论 -
数字IP的作用以及转换
数字IP的作用以及转换1、什么是数字地址?与IP地址有什么区别? 简单的说,数字地址就是IP地址的另一种表现形式。都可以被浏览器、ping命令识别还原和访问。 区别:IP地址用“点分十进制”表示,用“.”分成4部分;数字地址是一串用“十进制”表示的数字。 比如:百度的IP地址“119.75.218.77”转换成数字地址就是“2001459789”。在浏览器中输入20原创 2017-06-01 11:14:16 · 4585 阅读 · 3 评论