当前位置: 首页 > news >正文

int 和 Integer 的区别与作用,java堆内存和栈内存的区别,StringBuilder、StringBuffer 的区别,kotlin和java开发优缺点,内部类分类和使用场景,编码

int 和 Integer 的区别与作用:

一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。

 

int num2=Integer.parseInt("12");

double num3=Double.valueOf("12.2");;
 

List<Integer> nums;
这里<>需要类。如果你用int。它会报错的

 

Integer:的缺省是null;

 

java堆内存和栈内存的区别:


1 栈:为编译器自动分配和释放,如函数参数、局部变量、临时变量等等
2 堆:为成员分配和释放,由程序员自己申请、自己释放。否则发生内存泄露。典型为使用new申请的堆内容。
除了这两部分,还有一部分是:
3 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。

 

StringBuilder、StringBuffer 的区别:

buffer:缓冲区

  • StringBuffer允许多线程操作,其很多方法都被关键字synchronized(线程安全)修饰,而StringBuilder则不是,如果不考虑线程安全,StringBuilder应该是首选。

 

kotlin和java开发优缺点

https://blog.csdn.net/yinxing2008/article/details/89810520

apk会变大.一方面会增加kotlin的一些库文件,另一方面kotlin编译的类增加了一些方法。

总体上来说,Kotlin要优于Java,使用起来更方便,更简洁.

 

内部类分类和使用场景:https://blog.csdn.net/xiaoliuliu2050/article/details/62062881

 

避免修改接口而实现同一个类中两种同名方法的调用

 

static优势:

static可以修饰成员变量,成员方法,代码块,类
特点:

static修饰的方法和变量,为类所属方法和变量,不会在对象销毁时销毁,所以生命周期较长。
被static修饰的内容会随着类的加载而加载,优先于对象存在,成员变量和成员方法可以通过类名直接调用并被该类下所有对象共享。

在static方法中,不能出现this,super,因为其优先于对象而存在

 

抽象类 & 接口

  • 抽象类和接口都不能被实例化。
  • 抽象类要被子类继承,接口要被类实现。
  • 接口只能做方法的声明,抽象类可以做方法的声明,也可以做方法的实现。
  • 接口里定义的变量只能是公共的静态常量,抽象类中的变量可以是普通变量。
  • 抽象类里的抽象方法必须全部被子类实现;接口的接口方法必须全部被子类实现,否则只能为抽象类。
  • 抽象类里可以没有抽象方法。
  • 如果一个类里有抽象方法,那么这个类只能是抽象类。
  • 抽象方法要被实现,所以不能是静态的,也不能是私有的。
  • 接口可继承接口,并可多继承接口,但类只能单继承。

 

编码:

  • GB2312GBK编码规则类似,但是GBK范围更大,它能处理所有汉字字符。
  • UTF-16UTF-8都是处理Unicode编码,UTF-16效率更高,它适合在本地磁盘和内存之间使用。
  • UTF-16不是在网络之间传输,因为网络传输容易损坏字节流,UTF-8更适合网络传输,对ASCII字符采用单字节存储,单字节损毁不会影响后面其它字符。


 

相关文章:

  • 枚举,注解 ,反射
  • 类加载对象实例,java具有可移植性原因,泛型和object区别,
  • android studio 输出apk过程,apk中的文件格式(bsh文件,dex文件),JVM、DVM、ART的区别,IOS与安卓的区别,ART和Dalvik
  • LruCache使用,基本数据类型 引用类型,面试==和equals的区别 本质,onCreate 和onResume 区别,
  • Fragment 知识梳理, FragmentPagerAdapter ,RecyclerView 知识梳理,sharepreference,IntentService,service交互
  • kotlin 学习,val和var的区别
  • kotlin ==和===区别,kotlin数组,kotlin 三引号,if-else 调监控子很语句,
  • CMake 进行 NDK 开发之初体验, Error occurred while communicating with CMake server
  • dump java heap,GPU,Lint
  • 处理屏幕旋转导致的重建,单例对象,StringBuilder进行拼接,ProGurad 混淆,VectorDrawable 及 AnimatedVectorDrawable,IntentService
  • SVG,Vector,gradle
  • 蓝牙通讯数据传输,蓝牙UUID,BluetoothAdapter;adb input 模拟系统输入,adb logcat:抓包,抓日志,蓝牙通讯,adb命令实现手机之间互相控制,虚拟按键
  • gradle中的 compileSdkVersion minSdkVersion targetSdkVersion
  • android 解决中文乱码,reload和cnvert区别
  • JetGradlePlugin,transformDexArchiveWithExternalLibsDexMergerForDebug
  • canvas绘制圆角头像
  • echarts的各种常用效果展示
  • Elasticsearch 参考指南(升级前重新索引)
  • es6(二):字符串的扩展
  • HTML中设置input等文本框为不可操作
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • java正则表式的使用
  • magento2项目上线注意事项
  • maven工程打包jar以及java jar命令的classpath使用
  • node入门
  • Python十分钟制作属于你自己的个性logo
  • Ruby 2.x 源代码分析:扩展 概述
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 服务器之间,相同帐号,实现免密钥登录
  • 高程读书笔记 第六章 面向对象程序设计
  • 关于List、List?、ListObject的区别
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 优化 Vue 项目编译文件大小
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 2017年360最后一道编程题
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (1)bark-ml
  • (solr系列:一)使用tomcat部署solr服务
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)基于IDEA的JAVA基础1
  • (转)linux 命令大全
  • (轉)JSON.stringify 语法实例讲解
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net 按比例显示图片的缩略图
  • .NET 使用 XPath 来读写 XML 文件
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET/C# 使用反射注册事件