字符串对象是一种特殊的对象.String类是一个不可变的类..也就说,String对象一旦创建就不允许修改 String类有一个对应的String池,也就是 String pool.每一个内容相同的字符串对象都对应于一个pool里的对象. 1 看下面一段代码. String s = new String("abc");   String s1 = "abc";   String s2 = new String("abc");      Syste…
Java基础--String构造方法 public String(): 创建一个空表字符串对象,不包含任何内容 public String(char[]chs): 根据字符数组的内容,来创建字符串对象,现已不用 public String (byte[]bys): 根据字节数组的内容,来创建字符串对象 String s="abs": 直接赋值的方式创建字符串对象,内容为双引号内的字符串数据推荐使用 //笨方法public class StringDemo01 {   public st…
String是一个对象 String不属于8种基本数据类型(byte, char, short, int, float, long, double, boolean),String是对象,所以其默认值是null. String是一种特殊的对象,有其它对象没有的一些特性,通过JDK发现: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The val…
首先看一个程序 package reverse; public class Reverse { public static void main(String[] args) { String c1=new String("abc"); String c2=new String("abc"); String c3=c1; System.out.println("c1==c2:"+ (c1==c2)); System.out.println(&quo…
Java基础String的方法 字符串类型写法格式如下: 格式一: String 变量名称; 变量名称=赋值(自定义或传入的变量值); 格式二: String 变量名称=赋值(自定义或传入的变量值);在输出时任何数据类型与字符串进行拼接,结果一般是字符串 public class StringFunc { public static void main(String[] args){ //字符串拼接 String str1; str1 = "hello"; String str2 =…
首先,String是final修饰的.immutable对象,它以一个个字符的方式存储在字符数组中.其次,String类型创建对象有两种方式:①通过字面量赋值:会先去常量池中查找是否存在相同的字符串,若存在,栈中引用直接指定该字符串:若不存在,在常量池中进行缓存,再将栈中引用指向它.②通过new关键字:每次new出来的都是一个新的对象,在堆中开辟空间进行存储.又因为,在JDK1.7的HotSpot中,已经把原本放在永久代的字符串常量池移出,JDK8元空间彻底取代永久代,此时字符串常量池还在堆,所…
Java:String对象小记 对 Java 中的 String 对象,做一个微不足道的小小小小记 字节和字符的区别 字节 byte: 一个字节包含8个位(bit),因此byte的取值范围为-128~127: 字节是存储容量的基本单位: 字符 char: 字符是数字.字母.汉字以及其他语言的各种符号: Java 采用 unicode 来表示字符,Java 中的一个 char 是2个字节,一个中文或英文字符的 unicode 编码都占2个字节: 在 GB2312 编码或 GBK 编码中,一个英文字…
  之间的博客,承上启下:    Java基础 String/StringBuff 常用操作方法复习/内存分析 Java数组直接选择排序.sort()排序 Java基础 String 算法 - 五个练习题目要求: /** 1.模拟一个trim方法,去除字符串两端的空格. 2.将一个字符串进行反转.将字符串中指定部分进行反转.比如将“abcdefg”反转为”abfedcg” */ /** 3.获取一个字符串在另一个字符串中出现的次数. 比如:获取“ ab”在 “abkkcadkabkebfkabk…
一.常用的创建方式 String s1=”abc“: String s2=”abc“: s1==s2    ==> true 解析:s1和s2指向的是同一个字符串池地址 二.不常用的创建方式 String s1=new String(”abc“): String s2=new String(”abc“):: s1==s2    ==> false 解析:s1和s2指向的是不同的字符串池地址,new的时候会重新创建一个新的内存空间装载字符串,哪怕之前有一样的 三.String的特点 (1).St…
一String 使用 private final char value来实现字符串存储 二Java中String的创建方法四种 三在深入了解String创建机制之前要先了解一个重要概念常量池Constant Pool 四直接使用 双引号的创建机制 五用new stringstring的创建机制 六Java内存模型 一.String 使用 private final char value[]来实现字符串存储 所以String对象创建之后就不能再修改此对象中存储的字符串内容,所以说String本质是…
看下面这段代码: public class Main { public static void main(String[] args) { String string = ""; for(int i=0;i<10000;i++){ string += "hello"; } } } 这句 string += "hello";的过程相当于将原有的string变量指向的对象内容取出与"hello"作字符串相加操作再存进另一个新…
​在上一篇中说道这篇文章会说java的动态绑定机制,由于这个知识点放在继承中讲会比较合适,说以在这篇文章中先来详细的说说String对象吧. ​只要学过Java的同学,我们都知道Java一共有8中基本类型,但是在Java中最常用的String类型却不属于这8中基本类型中.他是Java.lang包中的一个类.但是String对象在引用传递中JVM的处理却与其他对象不同. ​在正式开始来讲这个String对象的时候我们首先来简单的说明下Java中的值传递和引用传递.正如很多Java说熟知的那样,Ja…
前言 从去年八月末开始工作一年了,有了大半年的java开发经验,自认为比在大学时期编码能力强了很多,但是基础方面概念模糊的地方感觉越来越多了 (:´д`)ゞ 所以,我准备把这些问题以及工作中遇到的问题总结,记录下来,造福自己和大家~ヾ(o・ω・)ノ   当然,如果大家发现我哪里写的有错误,欢迎在下方评论指出来. 那我们开始吧! String 1.String是一个final类,不能被继承 2.String底层维护是一个数组,静态创造一个字符串时,此字符串存在于String池,当下一个String…
JVM运行的时候,将内存分为两个部分,一部分是堆,一部分是栈.堆中存放的是创建对象,而栈中存放的则是方法调用过程中的局部变量或引用.在设计JAVA字符串对象内存实现的时候,在堆中又开辟了一块很小的内存,称之为字符串常量池,专门用来存放特定的字符串对象的. 例如: String s1="JavaSE6.0"; //存放在字符串常量池中.性能高 String str = new String("JavaSE6.0"); //存放在堆中 s1==str ; //返回fal…
简要说明的话,Java对象的创建过程分为下面几步: 1.执行相关检查: 2.为对象分配内存,将分配到的内存空间都初始化为零值: 3.进行构造代码块和构造函数的初始化 下面详细介绍这几个步骤: 1.执行相关检查 虚拟机遇到一条new指令时,将会去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否已被加载.解析和初试化过,如果没有,那必须先执行相应的类加载过程: 例:Person p = new Person() 当有这么一条new指令时,我们先去检查p这个符号…
一.java内部String类的实现: java 8: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; } java 9 及之后:(使用coder标识了编码) public final class Stri…
结论 1-String,StringBuilder,StringBuffer 之间的区别主要是在两个方面,即运行速度和线程安全这两方面: 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String 再来说线程安全,在线程安全上,String 是线程安全的, StringBuilder是线程不安全的,而StringBuffer是线程安全的 2.1-直接相加字符串,效率很高,因为在编译器便确定了它的值,也就是说形如"…
Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 类:类是一个模板,它描述一类对象的行为和状态. 下图中男孩女孩为类,而具体的每个人为该类的对象: Java中的对象 现在让我们深入了解什么是对象.看看周围真实的世界,会发现身边有很多对象,车,狗,人等等.所有这些对象都有自己的状态和行…
一.String 类代表字符串 Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 字符串是常量:它们的值在创建之后不能更改.字符串缓冲区支持可变的字符串.因为 String 对象是不可变的,所以可以共享.例如: String str = "abc"; 等效于: String str = new String(data); 下面给出了一些如何使用字符串的更多示例: System.out.println("abc"); S…
public class Test { public static void main(String args[]) { String s1 = "Java"; String s2 = "Java"; System.out.println(s1 == s2); // true } } 程序只创建了一个"Java"字符串对象,存放在常量池中,故s1 == s2结果为true,两个变量都指向了同一个对象. 常量池专门用于管理在编译时被确定并被保存在已…
特点 String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. String实际上是使用字符数组来存储的数据的.从源码可以清晰看到定义的字符数组. String在java/lang包下面,java默认导入lang包,所以使用String类时不用导入. 创建方式 创建字符串有下面两种方式: String ok1=new String(“ok”); String ok2=“ok”…
标准格式:数据类型[] 数组名称 = new 数据类型[] {元素1,元素2,...};省略格式:数据类型[] 数组名称 = {元素1,元素2,...}; Scanner类实现的功能,可以实现键盘输入数据,到程序中 引用类型的一般使用步骤:1.导包import 包路径.类名称;如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写.只有java.lang包下的内容不需要导包,其他的包都需要import语句. 2.创建类名称 对象名 = new 类名称(); 3.使用对象名.成员方法…
多线程 进程 每一个应用程序在运行时,都会产生至少一个进程(process). 进程是操作系统进行"资源分配和调度"的独立单位. Windows系统的"任务管理器"可以查看系统的进程,通过Ctrl+Shift+Esc组合键可以调出"任务管理器". 进程具有三个特征: 独立性:进程拥有自己独立的资源,有私有的地址空间. 动态性:程序是静态的指令集合,而进程是活动的指令集合,进程有其生命周期. 并发性:多个进程可以在同一个处理器上并发执行,互不影响.…
1.API 1.1 API概述-帮助文档的使用 什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用. 如何使用API帮助文档 : 打开帮助文档 找到索引选项卡中的输入框 在输入框中输入Random 看类在哪个包下 看类的描述 看…
对象的创建 Test test = new Test(); Test test = new Test("a"); 其实,对象被创建出来时,对象就是一个对象的引用,这个引用在内存中为对象分配了存储空间,可以在构造方法中初始化成员变量,当创建对象时,自动调用构造方法,也就是java中初始化与创建是被捆绑在一起的. 每个对象都是独立的,在内存中占据独立的内存地址,并且每个对象都有自己的生命周期,当一个对象生命周期结束时,对象就会变成垃圾,由java虚拟机自带的垃圾回收机制处理.…
对象导论 1.1 抽象过程 所有编程语言都提供抽象机制.人们所能解决的问题的复杂性直接取决于抽象的类型和质量. 汇编语言是对底层机器的轻微抽象. 我们将问题空间中的元素及其再解空间中的表示称为对象.这种思想实质是:程序可以通过添加新类型的对象使自身适用于某个特定的问题. 万物皆为对象 可以抽取待求解问题的任何概念化构建表示程序中的对象. 程序是对象的集合 他们通过发送消息来告知彼此所要做的. 每个对象都有自己的由其他对象所构成的存储 每个对象都拥有其类型 某一特定类型的所有对象都可以接收同样的消…
java中String的常用方法 1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); i nt len=s.length(); 2.charAt() 截取一个字符 例:char ch; ch="abc".charAt(1); 返回'b' 3. getChars() 截取多个字符 例:String s="this is a demo of the getChars method.…
附:jdk1.8使用IDEA安装.创建.使用JUnit单元测试 笔记总结: /**String 复习 * 1.像C++这样的char arr[]="..." 的方式无法声明Java的String * 2.a.compareTo(b),表示按字典序比较两个字符串a和b,结果小于0:a表示小于b,结果大于0:a表示大于b,结果等于0表示等于(值不确定) * 3.equals() 判断相等 * 4.indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引. *…
1. 判断对象的类型:instanceOf 和 isInstance 或者直接将对象强转给任意一个类型,如果转换成功,则可以确定,如果不成功,在异常提示中可以确定类型 public static void main(String[] args) { Integer i = new Integer(10); System.out.println(i instanceof Integer); // 知道类型名 String parentClass = "java.lang.String";…
String类概述 字符串是由多个字符组成的一串数据字符串可以看成是字符数组 构造方法 public String(String original)public String(char[] value)public String(char[] value,int offset,int count)直接赋值也可以是一个对象 注意:字符串是比较特殊的引用类型,直接输出该字符串对象打印的不是地址值而是该对象的值. 两个string不能用==判断是否相等,因为引用数据类型比较的是引用数据类型的地址值是否…