美文网首页
java基础随笔

java基础随笔

作者: 伊泽_b394 | 来源:发表于2020-04-10 09:34 被阅读0次

1.equals 方法本质就是 ==。引用对象不重写equals方法就是比较地址值

2.String 不是基础类型

3.java 中的 Math.round():正数网上取整,负数舍弃

4.字符串反转:StringBuilder /StringBuffre的reverse()方法

5.字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。

6.Integer的值在-128—127之间,直接到常量池获取不用创建新对象

7.创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。

8.Object.wait()方法使用在同步锁当中

9.synchronized 和java.util.concurrent.locks.Lock的异同:

1.Lock 能完成synchronized所实现的所有功能

2.synchronized会自动释放锁,lock需要开发人员收到释放

并且最好在finally 块中释放

3.synchronized底层是利用了原生的c/c++实现,不可控。lock是纯java实现的锁机制

AQS底层:三大核心->自旋、LockSupport、CAS

AQS具备特征:

    ·阻塞等待队列

    ·共享/独占

    ·公平/非公平

    ·可重入

    ·允许中断

CLH队列:没有拿到锁的线程由自旋变成阻塞

FIFO:先进先出

参考:https://zhuanlan.zhihu.com/p/60884042

10.所谓设计模式,就是一套被反复使用的代码设计经验的总结

11.单例饿汉式可以避免并发出现多个实例问题,线程安全

12.springcloud的五大常用组件:zuul网关,Eureka 注册中心,Ribbon 客户端负载均衡,Hystrix熔断机制,springcloud Config分布式配置

13.mysql的Explain使用了解参数含义

查询优化:

1.in 和 exist用法场景区分:数据集大的in数据集小的,反之用exist

2.order by字段 尽量使用索引,mysql排序使用index和filesort两种方式

锁机制:

分类:按操作分为  读锁(共享锁) 写锁(排他锁)

按操作颗粒度分为:

表锁  偏向MyISAM存储引擎,开销小,加速块;无死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

行锁 ·偏向InnoDB存储引擎,开销大,加锁慢;会出现思索;锁定力度最小,发生锁冲突的概率最低,并发度也最高。

    ·表中没有索引就升级为表锁

间隙锁(GAP):(不建议使用)当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;

14.线程的t.join()方法:只会使主线程进入等待池并等待t线程执行完毕后才会被唤醒。并不影响同一时刻处在运行状态的其他线程。

15.slee()/wait()方法区别:·sleep()属于Thread类中的,wait()属于Object类中

  ·sleep()方法过程中不会释放对象锁/wait()会释放对象锁进入等待池中

16.普通的单核cpu(不支持超线程)同一时刻只能执行一个线程

时间片:cpu执行划分很多时间片段给不同的线程

17. ·偏向锁:偏向锁的目的是在某个线程获得锁之后,消除这个线程锁重入(CAS)的开销,看起来让这个线程得到了偏护

·轻量级锁:轻量级锁所适应的场景是线程交替执行同步块的情况,如果存在同一时间访问同一锁的情况,就会导致轻量级锁膨胀为重量级锁。

·重量级锁:这种依赖于操作系统 Mutex Lock 所实现的锁我们称之为“重量级锁”。 需要将用户态转换为内核态(开销较大)

18.CyclicBarrier(回环栅栏)可以实现让一组线程等待至某个状态之后再全部同时执行

CyclicBarrier 中最重要的方法就是 await()/await(long timeout, TimeUnit unit)

19.四大元注解:@Target指定使用范围、@Retention 存活时间、@Documented将被javadoc编译成文档、@Inherited可以集成父类注解

20.为什么需要将对象序列化?--1.将对象持久化到硬盘,例如:session 2.对象远程传输

  serialVersionUID的作用?--保证反序列化不会出错(如果没有生成serialVersionUID,Serializable会自动根据class的属性生成serialVersionUID,但是如果传输过程对象发生变化会报错:InvalidClassException)

21.mybatis缓存:·一级缓存默认开启不可关闭,作用在同一个sqlSession(底层一个Map维护)

·二级缓存需要开启全局配置中启动,select中开启需要cache的节点(底层Map维护)

如果两次操作中间出现commit操作cache清空

22.tcp/ip协议 采用四层结构模型:应用层、传输层、网络层、链路层

网络通信就好比送快递,商品外面的一层层包裹就是各种协议,协议包含了商品信息、收货地址、收件人、联系方式等,然后还需要配送车、配送站、快递员,商品才能最终到达用户手中。

配送车就是物理介质,配送站就是网关, 快递员就是路由器,收货地址就是IP地址,联系方式就是MAC地址。

链路层对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方。

            组成:首部数据尾部三部分组成

            首部固定为14个字节,包含了目标MAC地址、源MAC地址和类型

            数据太大需要分为多帧发送

            尾部固定为4个字节,表示数据帧校验序列,用于确定数据包在传输过程中是否损坏


网络层定义网络地址,区分网段,子网内MAC寻址,对于不同子网的数据包进行路由

            包含协议:IP协议ARP协议路由协议

            组成:首部数据两部分组成

             首部:长度为20个字节,主要包含了目标IP地址和源IP地址,目标IP地址是网关路由的线索和依据


传输层定义端口,标识应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性

            包含协议:UDP协议(没有确认机制,数据不保证安全)/tcp协议(有确认机制的UDP协议)

            组成:首部和数据

            首部:首部长度为8个字节,主要包括源端口和目标端口

            tcp协议:三次握手,四次挥手


应用层:定义数据格式并按照对应的格式解读数据

            包含协议: HTTP、FTP、SMTP 等


总结:

当你输入一个网址并按下回车键的时候,首先,应用层协议对该请求包做了格式定义;紧接着传输层协议加上了双方的端口号,确认了双方通信的应用程序;然后网络协议加上了双方的IP地址,确认了双方的网络位置;最后链路层协议加上了双方的MAC地址,确认了双方的物理位置,同时将数据进行分组,形成数据帧,采用广播方式,通过传输介质发送给对方主机。而对于不同网段,该数据包首先会转发给网关路由器,经过多次转发后,最终被发送到目标主机。目标机接收到数据包后,采用对应的协议,对帧数据进行组装,然后再通过一层一层的协议进行解析,最终被应用层的协议解析并交给服务器处理。

相关文章

  • java基础随笔

    1.equals 方法本质就是 ==。引用对象不重写equals方法就是比较地址值 2.String 不是基础类型...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • Java知识复习

    本文是自己在复习Java的时候做的一些随笔,有理解不对的地方欢迎各位大神指正... 一、基础知识1. Java概述...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • JAVA基础巩固随笔

    1、实例方法和静态方法有什么不一样? 答:实例方法只能在其类下调用,而静态方法可以直接调用。 答:1、在外部调用静...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • Java基础:注解

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 概述 注解...

  • Java基础:动态代理

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 概述 在运行时,...

网友评论

      本文标题:java基础随笔

      本文链接:https://www.haomeiwen.com/subject/omhuuftx.html