在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法. 因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识. java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁.线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁.获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法. java内置锁是一个互斥锁,这就是意味着最多只有一个线程能够获得该锁,当线程A…
对象的行为: 1.内存分配(栈和堆的区别) 栈:保存局部变量的值(用来保存基本数据类型的值:保存类的实例的引用) 对:用来存放动态产生的数据,比如new出来的对象 2.调用方法 方法返回一个值.方法不返回值.方法抛出一个异常给方法的调用者 public class Date{ public int day,month,year; public int getDay(){//返回整型 System.out.println("在getDay方法内部"); return day; } pub…
import java.lang.String; import java.util.Scanner; public class Main { public static void main(String[] args) { //方式一:会创建两个字符串对象(会在字符串常量池中也存一份) String a = new String("dining1"); //[尽量使用这种方式]方式二:最多创建一个字符串对象.(在字符串常量池中找有没有,有则直接指过去,否则创建,然后指过去.) Stri…
一.String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** The offset is the first…
String类总结 String类概述: java.lang.String 类是字符串操作类 String类的常用构造方法: //1.直接赋值 String str= "hellojava"; //2.new对象,参数是字符串 String str = new String("helloworld"); //3.参数是一个字符数组 char[] c= {'a','b'}; String str= new String(c); //4.参数是字符数组的一部分 Stri…
Java String 类 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 创建字符串 // ==比较的是字符串在栈中存放的首地址,而equals()比较的是两个字符串的内容是否相同 //普通的声明字符串的方法,只会在字符串常量池里开辟空间,并且开辟空间之前,会检查字符串常量池里是否已存在 //相同的数据,如果有,直接指向已存在的数据,如果没有会在字符串常量池里开辟一个新的空间 String s = "ccy"…
String类的两种实例化方式 直接赋值: String str = "www.YOOTK.com"; 构造方法: 构造方法:public String(String str),在构造里面依然要接收一个String类对象: String str = new String("www.YOOTK.com"); 字符串的比较 "=="是Java提供的关系运算符,主要的功能是进行数值相等判断的, 如果用在了String对象上表示的是内存地址数值的比较:…
String类的概述 String 类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现.字符串是常量,一旦被赋值,就不能被改变. String类的构造方法 * public String():空构造 * public String(byte[] bytes):把字节数组转成字符串 * public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串 * public String(cha…
一.Object简述 源码注释:Object类是所有类层级关系的Root节点,作为所有类的超类,包括数组也实现了该类的方法,注意这里说的很明确,指类层面. 所以在Java中有一句常说的话,一切皆对象,这话并不离谱. 1.显式扩展 结论验证 既然Object作为所有类的父级别的类,则不需要在显式的添加继承关系,Each01编译期就会提示移除冗余. public class Each01 extends Object { public static void main(String[] args)…
String 类的两种实例化方法 String 类的两种实例化方式的区别 String 类对象的比较 Stirng 类对象的使用分析 /*    1.String 类的两种实例化方式的区别        String 并不是一个基本数据类型,它本身属于一个类(首字母大写)        但是这个类在设计的过程之中加入了一些java 自己的特殊支持,所以对于这个类的对象实例化方式就有两种形式                直接赋值:String 对象 = "内容":        构造方…
一.String类一般字符串 声明字符串 >>String str 创建字符串 >>String(char a[])方法用于将一个字符数组创建为String对象 >>String(char a[],int offset,int length)方法用于提取字符数组a中的一部分创建一个字符串对象,参数offset表示开始截取字符串的位置,length表示截取字符串的长度 >>String(char a[] value)方法可用于分配一个新的String对象,使其…
有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. 创建学生类: 学生:Student 成员变量:name,age 构造方法:无参,带参 成员方法:getXxx()/setXxx() 分析: A:创建学生类. B:创建学生数组(对象数组). C:创建5个学生对象,并赋值. D:把C步骤的元素,放到数组中. E:遍历学生数组. 学生类: package zl_ObjectTest1; public class Student { //成员变量 private St…
一.理解final 望文生义,final意为“最终的,最后的”,我理解为“不能被改变的”,它可以修饰类.变量和方法. 所以我是否可以理解为被它所修饰的类.变量和方法都不能被改变呢?答案是”是“,因为有以下约束条件的存在: 1.final修饰类 被final修饰的类不能被继承,即它不能拥有自己的子类,否在会在编译期间报错.且看下面的例子: 第一步:创建一个用final修饰的父类Father 第二步:创建一个子类Son继承Father 如图所示,我们看到了报警信息,点进去一看,如下图所示: 意思就是…
数组存基本数据类型,也可以存引用数据类型 对象数组:使用数组存储对象(自定义对象) 先定义Person的三个私有变量,给他取值赋值方法,重写toString方法. package com.bjsxt.Array; public class Person { private String name; private int age; private String gender; public String getName() { return name; } public void setName…
数组工具类Arrays java.util.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法,用来实现数组常见的操作. public static String toString(数组): 将参数数组变成字符串(按照默认格式:[元素1,元素2,元素3...]) public static void sort(数组): 按照默认升序(从小到大)对数组的元素进行排序. 备注:1.如果是数组,sort默认按照升序从小到大2.如果是字符串,sort默认按照字母升序3.如果是自定义的类型,那…
Java synchronized 关键字 可以将一个代码块或一个方法标记为同步代码块.同步代码块是指同一时间只能有一个线程执行的代码,并且执行该代码的线程持有同步锁.synchronized关键字可以作用于 一个代码块 一种方法 当一个方法或代码块被声明为synchronized时,如果一个线程正在执行该synchronized 方法或代码块,其他线程会被阻塞,直到持有同步锁的线程释放.根据锁定的范围可以分为 类级别的锁可以防止多个线程在运行时同时进入该类所有实例化对象的 synchroniz…
一  对象锁和类锁的关系 /* * 对象锁和[类锁] 全局锁的关系? 对象锁是用于对象实例方法,或者一个对象实例上的 this 类锁是用于类的静态方法或者一个类的class对象上的. Ag.class 我们知道,类的对象实例可以有很多个,但是每个类只有一个class对象, 所以不同对象实例的对象锁是互不干扰的,但是每个类只有一个类锁. */ 对象锁,  不同对象. public class SynchrDemo { public static void main(String[] args) {…
本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助. 码字不易,三连支持一下吧 Arrays数组工具类 方法一览表 快速定位详细操作 asList() toString() 和 deepToString() sort() 和 parallelSort() binarySearch() compare() 和 compareUnsigned() copyOf() 和 copyOfRange() equals() de…
1.字符串与字符数组的转换 字符串可以使用toCharArray()方法变成一个字符数组,也可以使用String类的构造方法把一个字符数组变成一个字符串. public class StringAPIDemo01 { public static void main(String[] args) { String str1 = "hello"; //定义字符串 char c[] = str1.toCharArray(); //将字符串变为字符数组 for(int i=0;i<c.l…
String类下的compareTo(String otherString)方法的源码解析 一. 前言 近日研究了一下String类的一些方法, 通过查看源码, 对一些常用的方法也有了更透彻的认识, 也让我更加理解了设计者的算法思想. 我也推荐大家多读读源码, 我相信大家也会有意想不到的收获. 二. 实战 今天我分析的是String类的compareTo(String otherString)方法, 以下是我个人的分析观点, 如有哪里分析不到位的地方, 欢迎大家指出, 相互学习, 共同进步 !…
String类常见的功能 获取 1.1 字符串中包含的字符数,也就是获取字符串的长度:int length(); 1.2 根据位置获取某个位置上的字符:char charAt(int index) 1.3 根据字符串获取该字符在字符串中的位置: int indexOf(int ch):返回值是字符ch在字符串第一次出现的位置 int indexOf(int ch, int fromIndex):从fromIndex指定的位置获取ch字符在字符串出现的位置 int indexOf(String s…
一.匿名对象 匿名对象是没有名字的实体,也就是该实体没有对应的变量名引用  匿名对象的特征:            创建的匿名类的对象只能够调用一次            匿名对象只在堆内存中开辟空间,而不存在栈内存的引用            每次创建匿名对象都是不同的对象   package com.yyx.pratice; public class AnonymousObject { public static void main(String[] args) { printStuInfo…
用代码演示String类中的以下方法的用法 (1)boolean isEmpty(): 判断字符串是不是空串,如果是空的就返回true (2)char charAt(int index): 返回索引上的字符 (3)String toLowerCase(): 字符串转成小写 (4)String toUpperCase(): 字符串转成大写 (5)String repalce(char oldChar, char newChar): 将字符串中的老字符,替换为新字符 (6)String repalc…
1.String 对象的创建 String对象的创建有两种方式. 第1 种方式就是我们最常见的创建字符串的方式: String str1 = "Hello, 慕课网"; 第 2 种方式是对象实例化的方式,使用new关键字,并将要创建的字符串作为构造参数: String str2 = new Stri…
package cn.hncu.day8; public class RegExpDemo { public static void main(String[] args) { String str ="011-12345678"; boolean boo = str.matches("0\\d{2}-\\d{8}"); System.out.println(boo);//true str ="110-12345678"; boo = str.m…
1.首先了解文件流的相关概念: 2.文件File类的基本用法 public class Demo_1 { public static void main(String[] args) { //创建一个文件对象 File f=new File("e:\\aa.txt"); //得到文件的路径 System.out.println("文件路径:"+f.getAbsolutePath()); //得到文件的大小,字节数 System.out.println("文…
string类中的函数 1. 构造 2. 追加 3. 赋值 4. 位置与清除 5. 长度与容量 6. 比较 7. 子串 8. 搜索 9. 运算符 追加字符串 string s1("Welcome"); s1.append(" to C++"); // appends " to C++" to s1 cout << s1 << endl; // s1 now becomes Welcome to C++ string s2…
转自:http://ifeve.com/java-locks/ 建议参考:http://www.zhihu.com/question/28113814 Java类锁和对象锁实践 感谢[jiehao]同学的投稿,投稿可将文章发送到tengfei@ifeve.com 类锁和对象锁是否会冲突?对象锁和私有锁是否会冲突?通过实例来进行说明. 一.相关约定 为了明确后文的描述,先对本文涉及到的锁的相关定义作如下约定: 1. 类锁:在代码中的方法上加了static和synchronized的锁,或者sync…
Integer i = new Integer(100); Integer i2 = new Integer(100); if(i == i2){ System.out.println("AAAAAAAAAA"); } if(i.intValue() == i2.intValue()){ System.out.println("BBBBBBBBBB"); } String i3 = "100"; String i4 = "100&quo…
取出指定索引的字符 -- 使用charAt()方法 public class StringDemo { public static void main(String args[]) { String str = "hello"; // 定义字符串对象 char c = str.charAt(0); // 截取第一个字符 System.out.println(c); // 输出字符 } } 程序执行结果: h 字符数组与字符串的转换 public class StringDemo { p…