JAVA基础篇—String和StringBuffer】的更多相关文章

区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringBuffer类对象为可修改对象,可以通过append()方法来修改值 (2)String类对象的性能远不如StringBuffer类. String s=new "hallo";创建了两个对象,字符串在常量池中,s指向String字符串对象,String字符串对象指向 常量池中字符串 小例: String str=" zxcvbnm…
Java基础之String.StringBuffer.StringBuilder浅析 一.前言: 位于java.lang包下的String.StringBuilder.StringBuffer一般都是用来操作字符串的,这三个类都被final关键字修饰,不能被继承 相关的API我们可以在这里查看:https://docs.oracle.com/javase/8/docs/api/index.html 首先说明: String:字符串常量 StringBuffer:字符串变量(线程安全的) Stri…
字符串处理 在Java中最常将字符串作为String类型对象来处理.同时String中也提供了很多操作字符串的函数(可自行查阅资料),而本篇将介绍StringBuffer如何操作字符串. StringBuffer是使用缓冲区的,本身也是操作字符串的,但与String类不同,String类中的内容一旦声明之后不可改变,改变的只是其内存地址的指向,而StringBuffer中的内容是可以改变的, 对于StringBuffer而言,本身是一个具体的操作类,所以不能像String那样采用直接赋值的方式进…
------- android培训.java培训.期待与您交流! ---------- String类: 字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String str = "abc";     String str = new String("abc");  区别:第一个只有一个对象,第二个有两个对象. /** * 字符串String类的演示: * */ class StringDemo { public static void main(Str…
------- android培训.java培训.期待与您交流! ---------- java中一些基础类比如String.StringBuffer和基本数据类型包装类都是非常常见且使用非常频繁的类.这些类虽然简单,但是想要熟练使用也必须要学习,虽然API文档对这些类的用法都讲的比较详细,但是我觉得还是有必要再整理一下. 一.String类 1.概述 String就是字符串的意思,首先要明确一点的是String并不属于基本数据类型. 因为对象的默认值是null,所以String的默认值也是nu…
1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串. 生活中很多数据的描述都采用的是字符串的.而且我们还会对其进行操作. 所以,java就提供了这样的一个类供我们使用. (2)创建字符串对象 A:String():无参构造 **举例: String s = new String(); s = "hello"; sop(s); B:String(byte[] bys):传一个字节数组作为参数 ***** **举例 byte[] bys = {97,98,99,10…
---------- android培训.java培训.期待与您交流! ---------- 类String------------------------------------------------ 一.概述 (一)定义:String是字符串的类类型,用于描述字符串事物. (二)特点:字符串对象一旦被初始化,就不会被改变.String类不能有子类. (三)写法 1.Sting s= new String(“abc”) ; 2.String s = “abc”: (四)细节 String s…
在创建字符串的时候总是习惯性的使用String str = "...";,str = str+"abcd";也有听说过StringBuffer,StringBuilder,但是压根就没想过要去了解过. String乍一看创建的很方便,其实在字符串比较多的时候或者说创建了多个字符串的时候就会出现很大的问题,因为String在新创建字符串的时候是在内存里面新开辟了一块内存去存储这个字符串,因为String是静态的,之所以我们看起来是动态的,那是因为JVM把我们欺骗了,在…
java基础篇 java基础 目录 1.java是一种什么语言,jdk,jre,jvm三者的区别 2.java 1.5之后的三大版本 3.java跨平台及其原理 4.java 语言的特点 5.什么是字节码,字节码的好处 6.java 和 c++ 的区别 7.java的三大特性 8.java中的基本数据类型和引用数据类型及其区别 9.switch(expr),expr支持哪些数据类型 10.int 和 Integer 有什么区别,怎么理解自动拆箱,自动装箱 11.计算2^3效率最高的方法是 12.…
java基础篇---I/O技术   对于任何程序设计语言而言,输入输出(I/O)系统都是比较复杂的而且还是比较核心的.在java.io.包中提供了相关的API. java中流的概念划分 流的方向: 输入流:数据源到程序(inputStream,Reader读进来) 输出流:程序到目的地(OutPutStream,Writer写出去) 处理数据单元: 字节流:按照字节读取数据(InputStream,OutputStream) 字符流:按照字符读取数据(Reader,Writer) 功能不同 节点…
java基础篇---HTTP协议   HTTP协议一直是自己的薄弱点,也没抽太多时间去看这方面的内容,今天兴致来了就在网上搜了下关于http协议,发现有园友写了一篇非常好的博文,博文地址:(http://www.cnblogs.com/xdp-gacl/p/3751277.html)作者:孤傲苍狼 一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的…
接上一篇java基础篇---I/O技术(二) Java对象的序列化和反序列化 什么叫对象的序列化和反序列化 要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象输入流(ObjectInputStream).使用对象输出流输出序列化对象的步骤,有时也成序列化,而使用对象输入流读入对象的过程,有时也称为反序列化 一个对象产生之后实际上是在内存中为其开辟了一个存储空间,方便存储信息. 对象序列化就是把一个对象变成二进制的数据流的一个方法,通过对象序列化可以反驳的…
java基础篇 之 构造器内部的多态行为 ​ 我们来看下下面这段代码: public class Main { public static void main(String[] args) { new Son(5); } } class Person{ void draw(){ System.out.println("person draw"); } Person (){ System.out.println("before person draw"); draw(…
JAVA基础篇1 注释 单行注释 //这是一个单行注释,由两个斜杠组成,不能嵌套多行注释 多行注释 /*这是一个 多行注释 ,//里面不能嵌套多行注释, 但是可以嵌套单行注释*/ 文档注释 /**javadoc:文档注释 *有功能,@ */ 标识符和关键字 关键字: 标识符命名规则: 所有标识符都应该以大小写字母,美元符($),下划线(_)开始: 首字母之后可以是大小写字母,美元符,下划线或数字的任何字符组合: 不能用关键字作为变量名和方法名: <阿里巴巴Java开发手册>编写程序时可以用来参…
这是Java基础篇(JVM)的第二篇文章,紧接着上一篇字节码详解,这篇我们来详解Java的类加载机制,也就是如何把字节码代表的类信息加载进入内存中. 我们知道,不管是根据类新建对象,还是直接使用类变量/方法,都需要在类信息已经加载进入内存的前提下.在Java虚拟机规范中,类加载过程也就是类的生命周期包括7个部分:加载.验证.准备.解析.初始化.使用.卸载.不过我们先不写这几个阶段,先讲讲类加载器的知识,然后再来看具体的类加载过程. 1. 类加载器 关于类加载器,我主要关注两个方面,一是类加载器的…
Java基础篇: 题记:本系列文章,会尽量模拟面试现场对话情景, 用口语而非书面语 ,采用问答形式来展现.另外每一个问题都附上“延伸”,这部分内容是帮助小伙伴们更深的理解一些底层细节的补充,在面试中可能很少直接涉及,权当是提高自身水平的知识储备吧. 第一部分:java容器相关 1.问:List 和 Set 都有什么区别? 分析:这种问题面试官一般想考察的都是你对这两种数据结构的了解,已经使用时候的选择依据,所以可以从数据结构和一些使用案例入手分别做个介绍 答:List,列表,元素可重复.常用的实…
Java高级特性-String.StringBuffer和StringBuilder String Java语言中的字符串值都属于String类,虽然有其他方法表示字符串(如字符串数组),但Java一般使用String类作为字符串的标准格式,Java编译器将字符串作为String对象,String类是字符串常量,是不可更改的常量. String s1="abc": String s2=new String "abc"; 虽然内容相同但是new后其值就不同了 Stri…
在java中最常见的使用就是对字符串的操作:首先先说一下对字符串的理解:字符串就是一连串字符序列,Java提供了String和StringBuffer两个类来封装字符串,并提供一系列方法来操作字符串对象.接下来对它们一一描述: String类是不可变类: 即一旦一个String对象被创建以后,包含在这个对象中的字符串是不可改变的,直到这个对象被销毁. StringBuffer类: 在java中则代表一个字符序列可变的字符串,即一个StringBuffer被创建以后,StringBuffer提供的…
Java基础篇 - 强引用.弱引用.软引用和虚引用 原创零壹技术栈 最后发布于2018-09-09 08:58:21 阅读数 4936 收藏展开前言Java执行GC判断对象是否存活有两种方式其中一种是引用计数. 引用计数:Java堆中每一个对象都有一个引用计数属性,引用每新增1次计数加1,引用每释放1次计数减1. 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于(reachable)可达状态,程序才能使用它. 从JDK 1.2版本开始…
作为作为一个已经入了门的java程序猿,肯定对Java中的String.StringBuffer和StringBuilder都略有耳闻了,尤其是String 肯定是经常用的.但肯定你有一点很好奇,为什么java中有三个关于字符串的类?一个不够吗!先回答这个问题,黑格尔曾经说过--存在必合理,单纯一个String确实是不够的,所以要引入StringBuffer.再后来引入StringBuilder是另一个故事了,后面会详细讲到. 要了解为什么,我们就得先来看下这三者各自都有什么样的特点,有什么样的…
这是Java基础篇(JVM)的第一篇文章,本来想先说说Java类加载机制的,后来想想,JVM的作用是加载编译器编译好的字节码,并解释成机器码,那么首先应该了解字节码,然后再谈加载字节码的类加载机制似乎会好些,所以这篇改成详解字节码. 由于Java纯面向对象的特性,字节码只要能表示一个类的信息,就可以表示整个Java程序了,JVM只要能加载一个类的信息,就能加载整个程序了.所以,不管是字节码,还是JVM加载机制,关注点都是在类.我关注的点主要在于: 1. 由于字节码不是一次性全部加载进入内存,那么…
本文源码:GitHub·点这里 || GitEE·点这里 一.String类简介 1.基础简介 字符串是一个特殊的数据类型,属于引用类型.String类在Java中使用关键字final修饰,所以这个类是不可以继承扩展和修改它的方法.String类用处极广泛,在对String对象进行初始化时,和基本类型的包装器类型一样,可以不使用new关键字构造对象.(是真的妖娆...) 2.类构造和方法 String类结构 特点:final关键字修饰,实现Serializable序列化接口,Comparable…
String源码:基于jdk1.8 public final class String implements Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char[] value; /** Cache the hash code for the string */ private int hash; public St…
相同点:String.StringBuffer.StringBuilder最终底层存储与操作的都是char数组,StringBuffer和StringBuilder都继承了AbstractStringBuilder 不同点:String:char数组是final的,不可变,修改String时实际上是new一个新String对象返回,线程安全,频繁的增删操作时不建议使用 StringBuffer:线程安全(StringBuffer中的方法中加synchronized锁),多线程建议使用这个,修改值…
String是不可变的,原因 1是可以缓存hash值,因为String的hash值经常被使用,例如String用作HashMap等.不可变特性  使得hash值不变,因此只需要进行一次计算: 2String Pool的需要, 如果String已经被创建过了,那么就会从String Pool中取得引用,只有String是           不变的才能使用String Pool: StringBuffer和StringBuilder可变: String与StringBuffer是线程安全的:Str…
关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String 2.String <(StringBuffer,StringBuilder)的原因 String:字符串常量 StringBuffer:字符创变量 StringBuilder:字符创变量 从上面的名字可以看到,String是"字符创常量",也…
文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以保存在数据库中,本篇主要说明smartupload组件上传. 在讲解smartupload上传前,我们先来看看不使用组件是怎么完成上传的原理的? 废话不多说直接上代码 import java.io.*; import java.util.*; import javax.servlet.http.HttpServletRequest; import org.apache.commons.fileupload.Fil…
一.数据类型 包装类型 缓存池 二.String 概览 不可变的好处 String, StringBuffer and StringBuilder String Pool new String("abc") 三.运算 参数传递 float 与 double 隐式类型转换 switch 四.继承 访问权限 抽象类与接口 super 重写与重载 五.Object 通用方法 概览 equals() hashCode() toString() clone() 六.关键字 final stati…
1.反射的基础 反射的基石---->Class类 java程序中的各个java类属于同一类事物,描述这类事物的java类名就是Class 获取字节码对应的实例对象(Class类型) class cls1 = Person.class//字节码1; p1.getClass(); Class.forName("java.lang.String"); 主要用这种进行反射 8个基本类型,对应着8个Class对象 void.class 对象 String str1 = "abc&…
声明:本博客为原创博客,未经同意.不得转载!小伙伴们假设是在别的地方看到的话,建议还是来csdn上看吧(链接为http://blog.csdn.net/bettarwang/article/details/26412497),看代码和提问.讨论都更方便. 首先简单地来梳理一下Java中String.StringBuffer和StringBuilder各自的含义. 1.String类 首先.它是线程安全的,即能够用于多线程编程中. 其次,String类的对象是不可变的,即在定义时就确定了,类似St…