博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java笔试总结
阅读量:6832 次
发布时间:2019-06-26

本文共 1171 字,大约阅读时间需要 3 分钟。

1. Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。

面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。
面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。

总结:以InputStream(输入)/OutputStream(输出)为后缀的是字节流;

          以Reader(输入)/Writer(输出)为后缀的是字符流。

2. volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对

volatile的写操作,无法保证线程安全。

 

jdk动态代理和cglib动态代理。jdk动态代理是有java内部的反射机制实现的,前提是代理类和目标类必须实现统一的接口;cglib动态代理是借助asm来实现的。

Spring AOP与IOC的实现原理

ioc是spring最核心的内容,控制反转,也叫依赖注入,让一个对象的创建不需要new就能产生,实际上是通过反射机制,在对象调用的时候动态的创建和调用某个对象和方法;注入的方法有set注入,构造器注入和基于注解的注入。

aop也是spring的一大特色,aop通过动态代理实现了切面编程,可以用于对某个类的监督和管理,从而达到了一个模块扩充的功能。

spring的的目的就是让对象与对象之间的关系变成xml配置,从而实现了对象之间的解耦,spring就是一个容器,只有在容器中的对象才能提供这些功能和服务。

 

反射的原理,反射创建类实例的三种方式是什么

java反射机制实在运行当中,对任意一个类来说,能够知道它的所有属性和方法,都能调用它的任意一个属性和方法。

三种方式:getClass()方式,调用类的静态属性class,Class.forName()。

 

 对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

 

class A{     private   String a = "aa";     public boolean methodB(){      String b = "sb";      final String c ="adsf";   }}

 

参考:https://blog.csdn.net/g1812453421/article/details/80466992

转载于:https://www.cnblogs.com/zhaoyanhaoBlog/p/9706429.html

你可能感兴趣的文章
Add Auto Login computer by Registy(自动登陆计算机通过增加注册表键值方法)
查看>>
Python 标准库中的装饰器
查看>>
数论12——浅谈指数与对数
查看>>
几种重要的网络演化模型
查看>>
override与重载(overload)的区别
查看>>
maven项目 jsp报错
查看>>
UVA699 dfs and map
查看>>
###20175311MyCP(课下作业,必做)
查看>>
WCF 第二章 契约 同步请求回复操作
查看>>
Python3 Socket网络编程
查看>>
山泉戒
查看>>
Message Decoding
查看>>
EL表达式产生了DOM对象
查看>>
iOS开发数据库篇—FMDB简单介绍
查看>>
app测试更多机型系统解决方法
查看>>
winxp sp2下安装.net framework失败解决方法
查看>>
python-pcap模块解析mac地址
查看>>
LeeCode-Rotate Array
查看>>
JS封装动画框架,网易轮播图,旋转轮播图
查看>>
前端项目微金所1 - bootstrap模板,Compatible(兼容),Viewport(视口),条件注释,第三方依赖,MediaQuery媒体查询...
查看>>