
Java基础知识
文章平均质量分 96
取个程序猿的名字
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
实习经验分享贴
写在前面本来打算获得实习offer就写一篇经验总结的,但是因为疫情期间在家,并且公司那面入职时间的更改,使得我在家躺了一个多月。马上要入职了,需要调整下状态,趁此机会写写自己这几个月来的准备面试的心得体会。我从19年11月初开始准备,到今年3月末拿到字节跳动的头条后端开发的实习,中间也是准备了好几个月,但是其实这几个月是有水份的,因为中间放假的一大段时间都是没学习玩去了。但是现在看来,即使没有拿到这个offer,这几个月的复习也是很有价值的,本科期间对于开发这一部分实在是学的不堪入目,而现在好歹能自己做原创 2020-05-18 16:23:14 · 535 阅读 · 0 评论 -
shiro的使用心得
shiro的使用:基本的配置:一:pom.xml引入依赖<!-- 整合shiro 安全框架 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <versio...原创 2020-04-24 12:12:44 · 339 阅读 · 0 评论 -
java基础知识——Java并发机制
JMM模型: 其中共享内存=堆/本地方法区内存,本地内存=虚拟机栈等并发的三个特性:参考资料原子性:1:除了long和double的赋值都是原子性的 2:所有引用的赋值都是原子性的可见性:单某一个线程对共享变量进行修改时,主存会立即同步共享变量的值有序性:利用volatile,s,lock等。程序也有先天的有序性即happens-before原则原因:重排序:在不改变计算结...原创 2019-12-31 11:32:14 · 649 阅读 · 0 评论 -
Java基础知识——Redis
MVC模式,Model-View-Controller。在后端代码中,为了保证代码的整洁,易读性,一般会采用分层的办法,自顶向下分为controller层,service层,dao层,数据层或者叫持久层(直接与数据库打交道)。有时候,为了达到解耦的目的,会在上述基层中间加入响应的接口层,以使得接口与实现分离。如图层次关系所示,DAO层一般负责对数据库进行增删改查各种操作,Service层调用D...原创 2020-01-26 21:53:00 · 450 阅读 · 0 评论 -
Java 基础知识—— SSM项目总结
SSM项目总结功能:查询,增加,修改传输文件,登陆功能异常处理,数据统一树形列表数据的序列化,数据的多线程安全一:实现登陆功能利用shiro板块实现maven中导入shiro框架后,首先在web.xml中配置过滤器,会拦截所有的访问请求<filter> <filter-name>DelegatingFilterProxy</filter-nam...原创 2020-03-17 21:06:54 · 984 阅读 · 0 评论 -
Java基础知识——SSM项目架构
Spring整合mybatis:整合目的:不需要繁琐的创建SqlSessionFactory等,而只需要能够将DAO代理对象注入到Service对象调用方法即可。所以我们需要:编写spring-mybatis配置类三个作用:1:dataSource 配置数据源2:sqlSessionFactory配置工厂,加载数据源3:配置MapperScannerConfigurerMapperS...原创 2020-03-12 20:49:19 · 763 阅读 · 0 评论 -
Java基础知识——mybatis(多表连接,懒加载,缓存,注解)
多表查询表的关系:一对一:一一对应多对一:主从表关系。多个从表的记录对应一个主表的记录一对多:主从表关系。一个主表的记录对应多个从表的记录多对多:利用中间表记录关系。注意:使用内连接或者左右外连接查询,不影响实现思路,只影响实现结果一对一/多对一 实现:用户和账户:一个用户对应多个账户,多个账户对应一个用户。现在重点放在账户上select A.*,B.username,B.ad...原创 2020-02-03 16:17:29 · 632 阅读 · 0 评论 -
Java基础知识——maven
Maven优势:jar包的坐标:pom.xml两个核心功能:1:依赖管理:传统的项目每一个项目引入自己的jar包而maven项目利用本地仓库管理jar包,节省磁盘空间,增加jar包的利用率2:一键构建传统项目需要用户自己编译测试打包安装发布,而maven一键帮用户解决maven的目录结构:bin:存放了 maven 的命令,比如我们前面用到的 mvn tomcat:runbo...原创 2020-03-11 11:37:08 · 250 阅读 · 0 评论 -
Java基础知识——分布式优化策略
缓存策略缓存穿透缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。方法1:布隆过滤器Bloom-Filter算法的核心思想就是利用多个不同的Hash函数来解决“冲突”。Hash存在一个冲突(碰撞)的问题,用同一个Hash得到的两个URL的值有可能相同。为了减少冲突,我们可以多引入几个Hash,如果通过其中的一个Hash值我...原创 2020-03-05 17:22:05 · 549 阅读 · 0 评论 -
Java基础知识——linux原理
用户划分超级用户root(0)程序用户(1~499)普通用户(500~65535)超级用户:默认是root用户,其UID和GID均为0。在每台unix/linux操作系统中都是唯一且真实存在的,通过它可以登录系统,可以操作系统中任何文件和命令,拥有最高的管理权限普通用户:这类用户一般是由具备系统管理员root的权限的运维人员添加的。程序用户:这类用户的最大特点是安装系统后默认就会存在的...原创 2020-03-02 20:13:33 · 967 阅读 · 0 评论 -
Java基础知识——RocketMQ
PullRequest:长轮询当服务器收到客户端发来的请求后,服务器端不会直接进行响应,而是先将这个请求挂起,然后判断服务器端数据是否有更新。如果有更新,则进行响应,如果一直没有数据,则到达一定的时间限制(服务器端设置)才返回Push方式缺点:1:服务器负荷大 2:客户端可能处理不过来pull方式缺点:间隔不好定。太短忙等,太长积压订阅模式:DEFAULTMQPULLCON...原创 2020-02-28 22:20:28 · 323 阅读 · 0 评论 -
java基础知识——spring cloud
单体应用架构优点:开发简单缺点:不易拓展,维护,代码耦合垂直应用架构:通过业务:分割成一个个独立的工程全部功能集成在一个工程中,有重复的架构,对于大型项目不易开发、扩展及维护可以看到商品管理等功能每一个工程中都有分布式SOA架构: Service-Oriented Architecture抽取公共的功能为服务缺点:抽取粒度大,服务提供和调用的耦合度较大微服务:通过服务的原...原创 2020-02-27 19:11:16 · 419 阅读 · 0 评论 -
Java基础知识——RPC,Dubbo
RPCRPC实现:远程过程调用调用远程计算机上的服务,就像调用本地一样RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有:应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。通信框架:MINA 和 ...原创 2020-02-27 14:30:15 · 274 阅读 · 0 评论 -
SpringBoot——微服务,启动器,YAML和注解装配,profiles,日志slf4j,springmvc优化,原理,JPA和RestTemplate
springBoot微服务集群:一个业务,分布在不同的计算机上Redis服务器分布式:多个业务分布在不同的计算机上MapReduce微服务:可以理解为一种分布式单体应用架构——SOA架构——微服务架构优点:从紧耦合到松耦合到解耦合,便于修改缺点:分布式系统的复杂性单体应用架构是一个整体,将MVC三层同时打包SOA架构,将三层分开设计微服务架构,将三层又分别切分为一个个微服务...原创 2020-02-26 20:20:03 · 894 阅读 · 0 评论 -
Java基础知识——Spring
BeanPOJOs:Plain Ordinary Java Objects相当于删除限制的JavaBeanJavaBean 必须满足以下要求:1:无参数的构造函数2:所有参数属性为private3:实现serializeable接口EJB:企业级JavaBean 满足某项业务功能IOC前提问题:1:尽量使用反射而不是new例如不使用DriverManager.regist...原创 2020-02-07 18:18:23 · 227 阅读 · 0 评论 -
java基础知识——SpringMVC(注解含义,过滤器,参数绑定,返回值处理,文件上传)
注解含义@RequestMapping当它既出现在类上也出现在方法上时,类上注解值为请求URL的一级目录,方法上注解值为请求URL的二级目录value:别名method:指定HTTP请求方法(可选RequestMethod.GET,RequestMethod.HEAD,RequestMethod.POST,RequestMethod.PUT等)params:指定请求参数的限制@Requ...原创 2020-02-05 17:48:57 · 503 阅读 · 0 评论 -
Java基础知识——JavaIO
Java ioIO的基本分类同步和异步的区别:同步是线程去查看是否完成,异步是完成的数据去提醒线程已经完成参考资料data = socket.read();socket本意为套接字,为ip+端口,我理解为一个数据载体(BIO)阻塞io:未请求到数据即让出cpu(NIO not block io)非阻塞io:在 while 循环中不断地去询问内核数据是否就绪,这样会导致 CPU 占用率非...原创 2020-02-01 09:49:33 · 11926 阅读 · 0 评论 -
Java基础知识——异常 反射 内部类 序列化 泛型,String继承,多态,Object,抽象,数据,Collection,JDBC,代理,接口的静态和默认方法,this和super,复制,1.8
Java基础知识——续Person per = new Person(“张三”);Person:称为类,引用类型per:称为对象引用,对象实例new Person(“张三”):对象,引用变量String常量和对象的区别:1:存储位置区别2:编译时判断和运行时判断显式的String常量String a = “holten”;String b = “holten”;第一句代码执...原创 2020-01-27 20:53:36 · 613 阅读 · 0 评论 -
Java基础知识——集合类
LinkedList源码阅读知识点一:可以看到LinkedList基于链表,并且是双向循环链表,每一个节点是一个Entry,element,next,previous,构造方法和entry(int index) ,entry(int index) 找index位置的元素并返回。其他的操作比如add,remove都是符合双向循环链表基本操作private static class Entry&l...原创 2019-12-25 16:34:19 · 248 阅读 · 0 评论 -
Java基础知识——分布式系统
mvcc:MVCC(Mutil-Version Concurrency Control),就是多版本并发控制参考资料有两部分:undo日志:trx_id:事务id。roll_pointer:每次对哪条聚簇索引记录有修改的时候,都会把老版本写入undo日志中。这个roll_pointer就是存了一个指针,它指向这条聚簇索引记录的上一个版本的位置,通过它来获得上一个版本的记录信息。(注意插入...原创 2019-12-24 20:40:01 · 481 阅读 · 0 评论 -
Java基础知识——数据库
共享锁(Share locks简记为S锁):也称读锁,事务A对对象T加s锁,其他事务也只能对T加S,多个事务可以同时读,但不能有写操作,直到A释放S锁。排它锁(Exclusivelocks简记为X锁):也称写锁,事务A对对象T加X锁以后,其他事务不能对T加任何锁,只有事务A可以读写对象T直到A释放X锁。更新锁(简记为U锁):用来预定要对此对象施加X锁,它允许其他事务读,但不允许再施加U锁或X锁...原创 2019-12-23 18:55:24 · 681 阅读 · 0 评论 -
Java基础知识——服务器
Vlan:虚拟局域网参考资料我理解为带Vlan的交换机实现路由器的功能——分离广播域实现机制:在交换机上加红蓝口,通过vlan上的ID来区分不同vlan通信:路由器或者三层交换机同一vlan连接多台交换机:1:每一个valn id布线 麻烦2:汇聚链接,一根线转发多个不同VLAN的通信的端口。静态vlan基于Mac:根据Mac地址划分为不同的vlan id基于IP:根据IP地址...原创 2019-12-22 16:59:28 · 987 阅读 · 0 评论 -
Java基础知识——UML,创建模式,结构模式,行为模式
UML关系:参考资料注意:箭头指向为被泛化:类的继承实现:类实现接口依赖:表现为局部变量、方法的参数或者对静态方法的调用。关联:表现为成员变量,地位平等(学生和老师)。可以单向也可以双向仅仅是知道或者不知道的意思聚合:表现为成员变量,地位为包含关系整体和部分(工厂和工人)组合:表现为成员变量,地位为强拥有(人和心脏)它们表现的依赖关系强弱程度不同,这4种关系所表现的...原创 2019-12-21 16:56:54 · 271 阅读 · 0 评论 -
Java基础知识——zookeeper,Kafka
投票机制:选取leader的两种情况:理论基础:持久节点(persistent)和临时节点(ephemeral)1:持久节点只能通过delete删除。临时节点在创建该节点的客户端崩溃或关闭时,自动被删除。而leader明显为临时节点2:法定人数必须大于一半,即满足多数原则,即可用服务器超过一半才代表系统可用1:开机在集群正常工作之前,myid小的服务器给myid大的服务器投票有 5...原创 2019-12-20 17:43:05 · 470 阅读 · 0 评论 -
Java基础知识——JVM基础
jvm:运行在操作系统上的假想的计算机作用:Java源文件——编译器javac——class文件(字节码文件)字节码文件——解释器(jvm)java——机器码文件每一台平台解释器不同,但是虚拟机相同,跨平台的原因。一个程序对应一个虚拟机,多个程序对应多个虚拟机, 虚拟机之间数据不共享线程:jvm线程和原生操作系统线程具有直接映射关系虚拟机线程 (VM thread)这个线程等待...原创 2019-12-09 19:23:08 · 845 阅读 · 0 评论