在 Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity。 所有对象的非同步 方法都能够在任意时刻被任意线程调用,此时不需要考虑加锁的问题。 而对于对象的同步方法来说,在任意时刻有且仅有一个拥有该对象独占锁的线程能够调用它们。例如,一个同步方法是独占的。如果在线程调用某一对象的同步方法时,对象的独占锁被其他线程拥有,那么当前线程将处于阻塞状态...
示例代码:package com.arraytest; import java.util.ArrayList;import java.util.Iterator;import java.util.List; import org.junit.Test; publicclass Test01 { @Test publicvoid test01() { List<Integer> lstint = new ArrayList<Integer>(); lstint.add(1); lstint.add(2); lstint.add(3); // Iterator遍历一 Iterator<Integer> iterator = lstint.iterator(); wh...
先举几个可以删除掉文件和删除不掉文件的例子(先在F盘创建test1.txt文件,然后可以直接拷贝代码到IDE执行),最后总结下原因:例子一:下面的例子毫无疑问是能够删除掉文件的import java.io.File; import java.io.IOException;publicclass Test {publicstaticvoid main(String[] args) throws IOException {File file = new File("F:/test1.txt"); file.delete();} }原因:一个进程内(或者线程)单个线程执行,不存在资源共享的问题,所...
//随机生成1~100之间的一个整数int randomNumber = (int)(Math.random() * 100) + 1;System.out.println(randomNumber);这是直接使用Math.random()方法生成随机数的方法。还有使用Random类的方法。Random():创建一个新的随机数生成器。Random(long seed):使用单个 long 种子创建一个新的随机数生成器。第一种构造方法是使用默认当前系统时间的毫秒数作为种子数:Random r1 = new Random();Random random = new Random(); int ran...
简单来说,重载就是在同一类中允许同时存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可,而重置(覆盖)是子类重新定义父类中己经定义的方法,即子类重写父类方法。方法的重载方法的重载就是在同一类中允许同时存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可。总得来有三种情况:1.参数个数不同,构成重载publicint add(int a,int b){return a+b; }publicint add(int a){return a }2.参数类型不同,...
java 代码:import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class MapTest { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("1", "1"); map.put("2", "2"); map.put("3", "3"); // 第一种:通过Map.keySet遍历key和value System.out.print...
前提:有子类继承父类子类继承父类后,若父类的方法对子类不适用,子类可以对父类的方法进行重写(override)重写的规则:要求子类方法的返回值类型、方法名、参数列表和父类的方法一样 子类方法的访问权限不能小于父类方法的访问权限 若父类的方法抛出异常,子类抛的异常类型不能大于父类的 子类和父类的方法必须同为static或非static的注意: 父类中private 修饰的方法...
定义数组 var arr = []; var arr = new Array(); var arr = new Array(10); 创建一个长度为10的数组数组操作方法join():讲数组中所有元素转化为字符串并连接在一起,可以指定一个可选的字符串来分隔数组的各个元素,并不会改变原数组var arr = [1,2,3]; console.log(arr.join("-")); //1-2-3 console.log(typeof arr.join("-")); //string console.log(arr); //[1,2,3]2. reserve():将数组中的元素颠倒顺序,返回逆序数组...
意图 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 就是指:一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用 public abstract class AbstractCalculator { /*主方法,实现对本类其它方法的调用*/ public fin...
学编程吧学编程学IT教程之java构造方法重载教程发布了,欢迎大家通过xuebiancheng8.com来访问。在前面分析过什么是构造方法,构造方法是实例化对象的时候执行的代码就是构造方法,用来完成对象的初始化,那么大家想想是不是在一个类中只能有一个构造方法呢,答案是否定的,一个类中可以有多个构造方法,这些构造方法之间就构成了方法的重载,下面我们来看看什么是构造方法重载。先看个例子:public class Person{ private int ...
构造器 (constructor,构造方法) 3W what ? why? how? 是什么 , 为什么, 怎么用? 注意事项?What ? 是什么: 构造器(又叫构造方法)本身是一种特殊的方法,(但是和方法又没有什么大的关系,习惯上叫构造器,以免和方法混淆,)它只在新对象实例化的时候调用。Why ? 为什么用它: 为什么要用构造器 ,如果要实例化新的对象,需要使用关键字new 来完成,但是除了new这个关键字以外,还有可能在对象实例化时为其进行一些初始...
API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) 就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来 Object类Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。 equals方法equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就...
开发时需要把如“今天 12:15” "昨天 21:21" "前天 03: 02"之类的String转换成Date,所以写了个方法,有更好的写法的话欢迎留言 1//获取今天、昨天、前天的某个时间的方法, 如"昨天 21:21" "前天 15:15" 2privatestatic Date getFormatDate(String updated) throws Exception{3if (updated.substring(0, 2).equals("今天")){4 String partOfDate = updated.substring(3);5 Calendar calendar = Calendar....
碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象Properties prop=new Properties(); prop.load(Client.class.getClassLoader().getResourceAsStream("config.properties")); 由于使用这样的加载方式使用了系统默认的编码格式,不是UTF-8格式的读取模式,就会发生乱码情况。正确解决方法Properties prop=new Properties(); prop.load(new InputStreamReader(Client.class...
1.抽象方法由于多态的存在,每个子类都可以覆写父类的方法。class Person {publicvoid run() { … } }class Student extends Person {@Overridepublicvoid run() { … } }class Teacher extends Person {@Overridepublicvoid run() { … } }从Person类派生的Student和Teacher都可以覆写run()方法。如果父类的方法本身不需要实现任何功能,仅仅是为了定义方法签名,目的是让子类覆写它,那么可以把父类的方法声明为抽象方法。class ...