Java学习笔记
java之旅,整理我的java的学习之路吧 ,从2016年到现在
徐塬峰
6年Java开发经验,精通Spring Cloud微服务架构,熟悉Python数据分析与计算机视觉。致力于通过技术解决复杂业务问题,擅长高并发系统设计与性能优化,具备全栈开发能力。坚持技术分享,优快云原创技术文章100+篇,GitHub参与开源项目3项+。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
个人整理的代码规范&提交规范
1. 统一使用AlibabaCode代码规范校验以idea开发工具为准在Prefercences -> Plugins -> marketPlace 路径下安装AlibabaCoding Guidlines 。在每次提交代码前,务必使用该工具进行代码检测。安装完毕后 右键项目 => 代码规范检测 在下方可看到不符合规范的代码2. git提交规范下载:git clone https://github.com/blog-plat-dev/convention-git.git安装原创 2020-06-07 18:39:06 · 1804 阅读 · 0 评论 -
SpringCloud分布式(五)分布式统一配置Config使用详解
在分布式系统中,配置尽可能的不放到每个项目的配置文件中,因为这样改动起来很麻烦,而是放到一个集中的配置服务器上。举例子:在数据库中搞一个T_Configs表。Spring cloud Config是一个用Git进行配置信息存储的配置服务器,各个应用可以从他里面加载配置。首先要配置git服务器。当然也可以使用公共的git服务器,下面演示使用现成的git服务器创建ConfigServer:创建Spring Starter项目,勾选ConfigServer。XXXApplication上标注@EnableC原创 2020-06-01 00:09:52 · 547 阅读 · 1 评论 -
SpringCloud分布式(四)分布式网关Zuul使用详解
现有微服务的两点不足:对于在微服务体系中、和EurekaServer通讯的微服务来讲,使用服务名即可访问。但是对于手机、web端等外部访问者仍然需要和N多服务器交互,需要记忆他们的服务器地址、端口号等。一旦内部发生修改,很麻烦,而且有时候内部服务器是不希望外界直接访问的。各个业务系统的人无法自由的维护自己负责的服务器;现有的微服务都是“我家大门常打开”,没有做权限校验。如果把权限校验代码写到每个微服务上,那么开发工作量太大。zuul就是一个提供了请求路由、验证登录等功能的API网关微原创 2020-05-30 16:07:37 · 950 阅读 · 0 评论 -
SpringCloud分布式(三) 微服务调用Feign
FeignFeign是一个声明式服务调用工具,使用它,我们只要定义接口即可,Feign会帮我们动态生成一个实现了这个接口的类,这个类进行请求的封装,比直接用RestTemplate更简单。基本使用:1、新建项目的时候选择Feign或者在pom中新增(不同版本不一样,建议用Starter来建)org.springframework.cloudspring-cloud-starter-openfeign2、在**Application上标注@EnableFeignClients、@EnableD原创 2020-05-28 22:27:33 · 632 阅读 · 0 评论 -
SpringCloud分布式(二) 熔断器Hystrix使用详解
什么上熔断器?熔断器相当于电路当中的保险丝一样,如果在一段时间内发生多次失败,则会直接导致后续调用全部失败。如果已修正,则应用程序会再次发起调用操作。如何使用?在创建新的springboot项目中勾选【Hystrix】或者pom里增加<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix&原创 2020-05-22 11:13:26 · 475 阅读 · 0 评论 -
SpringCloud分布式(一) 服务发现eureka使用详解
1.什么是springcloud?springCloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。最重要的是,跟spring boot框架一起使用的话,会让你开发微服务架构的云服务非常好的方便。 SpringBoot旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务功能。SpringCloud的关键技术介原创 2020-05-21 11:06:15 · 570 阅读 · 0 评论 -
Hash冲突解决方式
在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样。当程序试图将多个 key-value 放入 HashMap 中时,以如下代码片段为例:HashMap<String,Object> m=new HashMap<String,Object>(); m.put("a", "r...转载 2019-04-09 09:11:13 · 506 阅读 · 0 评论 -
关于HashMap容量的初始化,还有这么多学问
转载自 关于HashMap容量的初始化,还有这么多学问在《HashMap中傻傻分不清楚的那些概念》文章中,我们介绍了HashMap中和容量相关的几个概念,简单介绍了一下HashMap的扩容机制。文中我们提到,默认情况下HashMap的容量是16,但是,如果用户通过构造函数指定了一个数字作为容量,那么Hash会选择大于该数字的第一个2的幂作为容量。(3-&...转载 2019-03-31 19:58:24 · 602 阅读 · 0 评论 -
面试必问的HashMap底层原理
一、概念 HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 键和null值,因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的。HashMap是线程不安全的。二、继承关系三、基本属性static final int DEFAULT_INITIAL_CAPAC...转载 2019-04-01 11:59:39 · 4819 阅读 · 0 评论 -
设计模式之单例设计模式
目录1.到底什么是设计模式?2.什么是单例设计模式?3.单列设计模式的两种实现方式饿汉式懒汉式(线程不安全)4.线程安全的写法饿汉式懒汉式(线程安全)1.到底什么是设计模式?设计模式可以理解为别人成功的故事,通用的套路,前人的经验,设计模式是一种思想,没有具体的实现。2.什么是单例设计模式?打一个比方:世界上只有一个太阳,一个月亮,单列设计模式就是体...原创 2018-09-21 22:20:37 · 379 阅读 · 0 评论 -
设计模式之模板设计模式
什么是模板设计模式?在父类中定义好算法的骨架,然后在子类中去实现。总的来说就是父类中定义需要实现的总方法,然后在子类中去依次实现它当然根据对象的不同,所实现的具体细节不同。下面来看一个例子:在父类中我们定义三个抽象的方法job ,在子类中去实现它。子类中执行execute方法 job1()如果当前时间能整除2 则执行job2() 然后顺序执行job3().p...原创 2018-05-24 18:17:28 · 763 阅读 · 0 评论 -
实现Runnable接口与继承Thread类的区别
一、首先通过例子实现这两种方式。1、继承Thread类。 Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了。首先新建一个MyThread类继承自Thread类,重写run()方法,在控制输入传递的文本,public class MyThread extends Thread { private ...转载 2018-05-18 12:46:58 · 931 阅读 · 0 评论 -
JavaWeb实现图片上传并显示
1.创建maven项目,打包格式为war,导入maven依赖 pom文件。<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h......原创 2018-07-03 14:37:19 · 36503 阅读 · 0 评论 -
静态内部类
java中可以使用static关键字来声明一个成员内部类,该类被称为静态内部类,它可以在不创建外部类的对象的情况下被实例化。外部类名.内部类名 变量名=new 外部类名.内部类名();演示外部类class Outer{private static int num=6;static class Inner{void show(){System.out.println("num="+nu...原创 2018-06-07 09:48:05 · 596 阅读 · 0 评论 -
使用final来修饰方法
Final 来修饰方法final来修饰类 方法 属性都表示其值不可变,也就是说类不可继承,方法不可重写,属性不可覆盖。如果使用final来修饰方法,那么表示该方法不能被重写,如果在父类中使用final 来修饰方法,那么该方法就被定义为private,即不可重写,即方法被私有化了。demo父类 中有一个用final 声明的speak方法,子类继承父类并去调用speak方法。cl......原创 2018-06-07 09:15:26 · 19151 阅读 · 4 评论 -
面向对象多态概念理解
1. 什么是多态一句话概括:父类对象引用子类变量 调用的是子类的实现例子:子类public class Chinese extends Person{ public void hello() { System.out.println("我是中国人"); } public void baimian() { System.out.println("我来拜年了"); } }...原创 2018-05-21 20:11:46 · 2601 阅读 · 1 评论 -
java的四种引用方式
Java的四种引用方式java内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指向该对象。java对象的引用包括 强引用,软引用,弱引用,虚引用Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。下面来阐述一下这四种类型引用的概念:1.强引用...原创 2018-03-10 23:30:00 · 454 阅读 · 0 评论 -
Object中有哪些公用方法。
1.Object是什么?Object是所有类的父类,任何的类都默认继承于Object。2.Object中有哪些方法 可以为任何一个对象 Object o1=new Object(); 1. 反射获得该类的运行时类型 ...原创 2018-03-10 23:15:00 · 690 阅读 · 0 评论 -
java中switch能否使用String作为参数?
System.out.println("输入数字:"); Scanner sc=new Scanner(System.in); int i=sc.nextInt(); switch(i) { case...原创 2018-03-07 22:55:00 · 2776 阅读 · 0 评论 -
java九种数据类型以及封装类
在java中基本的数据类型有九种分别是boolean,char,int,float,byte,short,long,double,void.相对应的封装类有Boolean,Character,Integer,Float,Byte,Short,Long,Double,Void.两者的...原创 2018-03-07 19:07:00 · 555 阅读 · 0 评论 -
JDBC连接数据库
JDBC数据库连接 1.Jdbc是什么?我们之前提到了数据库,如何使用java代码来操作数据库呢,程序要通过sql语句来操作数据库库,而必须拥有一个类库,类库提供sql语句的执行方法 jdbc就是因此而产生的,jdbc是java中提供的一个接口 允许程序员通过这个接口来操作数据库。2.如何使用jdbc来完成数据的增删该查Jdbc拥有自己的驱动使用前需...原创 2018-01-06 11:30:00 · 458 阅读 · 0 评论 -
Mysql数据库入门
MYSQL数据库基础1. 数据库什么是数据库,我们将数据都统一存放在库里,那么这个库就是数据库了。常用的数据库有orcle数据库和 mysql数据库,各种数据库大同小异,接下来就来进入mysql数据库的学习之中吧。2.数据库的安装2.1.Mysql的简单安装以及配置链接:http://pan.baidu.com/s/1qYUc0oc 密码:4...原创 2018-01-05 10:20:00 · 549 阅读 · 0 评论 -
JAVA实现一个简单的爬虫
网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。用java打造属于自己的爬虫网络上的图片太多 一个一个的保存实在太浪费时间基于此 就使用了java做了一个小工具功能是文件的复制 以及 网络上图片的下载首先是封装一个IOUtlis类方法,用于实现文件的复制和文件传输流的关闭package hh;import java.io.FileInputStream;...原创 2017-07-31 10:36:00 · 483 阅读 · 0 评论 -
MYSQL增删改查操作
SQL语句1.sql一般使用单引号 2.sql大小写不敏感 1. 查看一个表的全部数据select *from t_students 2.向数据库中插入一行记录Insert into t_students (ID,Name,Gender,Hobbies,Height) values(4,"傻逼",1,"撸管",190) 3....原创 2017-07-10 09:01:00 · 258 阅读 · 0 评论 -
JAVA时钟对象
JAVA之时钟对象Calendar之巨坑! Date now=new Date();//新建一个时钟对象 Calendar cal=Calendar.getInstance(); cal.setTime(now);//设置获取当前的时间 System.out.println(cal.get(Calendar.MONTH));返回6月(当前时间为7月2日...原创 2017-07-02 23:31:00 · 396 阅读 · 0 评论 -
JAVA字符串拼接
java之String Buffer拼字符神器在java中如果使用传统的拼接方法 String s1="aaa"; String s2="bb"; String s3="cc"; String s4=s1+s2+s3; System.out.println(s4); 这个执行的方式是每进行一次相加就会...原创 2017-07-01 11:28:00 · 375 阅读 · 0 评论 -
JAVA静态成员变量
静态成员变量定义:静态成员变量只初始化一次 package test30;//关于静态成员什么时候调用的问题public class meiju{ private static long a=0; private static long i=getIt(); public static void main(String[] args) { Syste...原创 2017-06-28 09:33:00 · 500 阅读 · 0 评论 -
java 短路预算&或运算
神奇的短路运算下面是一段java代码与运算int i=6;int j=6;boolean c=((i=i+5)>10&&i>10);boolean d=(j>10&&(j=j+5)>10);System.out.println(c);System.out.println(d); 返回值truefa...原创 2017-06-14 13:06:00 · 460 阅读 · 0 评论
分享