pclass = Class.forName("get_class_method.Person"); //Field ageField = pclass.getField("age");//因为age成员变量是私有的,所以会产生NoSuchFieldException异常 Field ageField = pclass.getDeclaredField("age");//获得该对象反映此 Class 对象所表示的类或接口的指定已声明字段 Obje…
Java多线程(Thread类.线程创建.线程池) 第一章 多线程 1.1 多线程介绍 1.1.1 基本概念 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程.一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序. 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 1.1.2 单线程程序 从入口mai…
面向对象 学习目标: 理解面向对象的编程思想 理解类与对象的关系 如何创建类与对象 方法重载 一:什么是面向对象编程(OOP) 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种编程思想,它将对象作为问解决问题的基本元素, 利用对象和对象之间的相互作用来设计程序. 面向对象思想把整个世界看成由各种对象来组成的.这些对象具有属性和行为(方法). 面向对象思考问题的方式: 1.首先考虑在问题域中设计到的对象有哪些 2.其次考虑这些对象有怎样的特征和…
题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 myPackage 包中创建一个YMD类,该类具有计算今年的年份.可以输出一个带有年月日的字符串的功能.设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名.年龄.出生日期.程序使用YMD的方法来计算年龄. 主要考包的运用 用到java.util.Calendar;求时间日…
定义一个表示学生信息的类Student,要求如下: (1)类Student的成员变量: sNO 表示学号: sName表示姓名: sSex表示性别: sAge表示年龄: sJava:表示Java课程成绩. (2)类Student带参数的构造方法: 在构造方法中通过形参完成对成员变量的赋值操作. (3)类Student的方法成员: getNo():获得学号: getName():获得姓名: getSex():获得性别: getAge()获得年龄: getJava():获得Java 课程成绩 根据类…
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing 首先给大家看一下效果.当然,就像我们刚学习写代码,写hello world! 很简单,所以,慢慢从简单开始学习吧.这次介绍Frame的一个简单的用法.java最简单的知识之创建一个简单的windows窗口,利用Frame类 下面是源代码:其实很简单: 可以利用eclipse等ide开发工具的,当然用记事本也是可以的…
java.util.Timer 是一个工具类,可以用于安排一个线程在未来的某个特定时间执 行.Timer 类可以用安排一次性任务或者周期任务. java.util.TimerTask 是一个实现了 Runnable 接口的抽象类,我们需要去继承这 个类来创建我们自己的定时任务并使用 Timer 去安排它的执行.…
/* Name:如何创建类的实例 Power by Stuart Date:2015-4-23*/ //一个bike测试类 public class bikeTest{ //bike 一个变量 String color="红色"; //bike 具有方法 void getbikeMsg(){ System.out.println("bike的方法"); } //main主方面 public static void main(String args[]){ //创建一…
创建线程 创建线程的三种方式: 继承java.lang.Thread 实现java.lang.Runnable接口 实现java.util.concurrent.Callable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行的代码 继承java.lang.Thread创建线程 package testpack; public class Test1 { public static void main(String[] args){ System.o…
内容提要: 线程与进程 为什么要使用多线程/进程?线程与进程的区别?线程对比进程的优势?Java中有多进程吗? 线程的创建与启动 线程的创建有哪几种方式?它们之间有什么区别? 线程的生命周期与线程控制 线程的生命周期有哪几种状态?各种状态之间如何转换?线程的等待.退让.中断等 1.线程与进程 使用多进程和多线程可以实现多个任务的并发执行,方便将IO操作或者耗时操作在后台处理,避免长时间等待,对于多核处理器能充分利用CPU资源,提高CPU使用率. 进程是系统进行调度和资源分配的独立单位. 线程是进…
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行的代码 继承java.lang.Thread创建线程 public class Test1 { public static void main(String[] args){ System.out.println("现在是主线程: "+Thread.currentThread()); //…
一.考虑用静态工厂方法代替构造器 这里的静态工厂方法是指类中使用public static 修饰的方法,和设计模式的工厂方法模式没有任何关系.相对于使用共有的构造器来创建对象,静态工厂方法有几大优势: 1.静态工厂方法有名称:通过有意义的静态工厂方法名称可以很好的表达工厂方法的作用,易于区别功能相似的多个静态工厂方法. 2.静态工厂方法可以有更复杂的生产对象逻辑,不仅仅是新建一个对象:既可以新建一个对象,也可以使用缓存的对象. 3.静态工厂方法可以返回原返回类型的任何子类型的对象:由于接口不能有…
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------…
首先先说一下类的加载,流程.只有明确了类这个对象的存在才可以更好的理解反射的原因,以及反射的机制. 一.  类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载 就是指将class文件读入内存,并为之创建一个Class对象--->  而这个对象就是我们反射中将要使用的对象. 任何类被使用时系统都会建立一个Class对象. 连接 验证  是否有正确的内部结构,并和其他类协调一致; 准备  负责为类的静态成员分配内存,并设置默…
转载请注明源出处:http://www.cnblogs.com/lighten/p/5967853.html 1.概念 老调重弹,学习线程的时候总会牵扯到进程的概念,会对二者做一个区分.网上有较多的解释,这里引入一个感觉很专业的解释(摘自百度经验): 1)进程是具有独立功能的程序对于某个数据集合的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 2)线程是进程的一个实体,是CPU调度和分派的一个基本单位,它是比进程更小的能独立运行的基本单位.线程基本自己不拥有系统资源,只拥有一点在运行…
现在我们有这么一个需求,就是在主线程在运行的同时,我们想做其他的任务,这个时候我们就用到了多线程.那么如何创建多线程,我们知道在系统当中qq的多线程创建是由操作系统来完成的,那么如果我们想在java当中创建多线程的话,应该如何去做呢?解决问题的时候,我们第一个应该想到的是,java当中是否给我们提供了解决该问题的对象,并且把这个对象暴漏出来供我们使用,特别是设计系统.这个时候我们去查阅javaapi. 创建线程的步骤: 1.创建一个类继承Thread类,此时这个类也就是线程 2.在该类当中覆盖T…
Java 反射 Array动态创建数组 @author ixenos 注:java.lang.reflect.Array 是个反射工具包,全是静态方法,创建数组以多维数组为基准,一维数组只是特殊实现 创建一个具有指定的组件类型和长度的新数组(一维数组) newInstance public static Object newInstance(Class<?> componentType, int length) throws NegativeArraySizeException 创建一个具有指…
有很多应用场景,用到了接口动态实现,下面举几个典型的应用: 1.mybatis / jpa 等orm框架,可以在接口上加注解进行开发,不需要编写实现类,运行时动态产生实现. 2.dubbo等分布式服务框架,消费者只需要引入接口就可以调用远程的实现,分析源代码,其实在消费端产生了接口的代理实现,再由代理调用远程接口. 3.spring aop 这是最典型的动态代理了. 创建接口的动态实现,有二种最常用的方式:JDK动态代理和CGLIB动态代理. 代理模式是一种常用的设计模式,其目的就是为其他对象提…
一.对象的创建: 创建对象在java上面是很简单的,使用new关键字就可以了,但是其实在虚拟机中,java对象的创建是一个复杂的过程. 当java虚拟机遇到一个new的指令的时候,对象创建的程序正式启动: 1.检查这个指定的参数是否能在常量池当中定位到一个类的符号引用,并且去检查这个符号引用代表的类是否已经被加载.解析和初始化过,如果没有就需要先执行相应的类加载的过程: 2.类加载完成之后需要进行为新生的对象分配内存,对象所需要的内存大小在类加载完成之后就已经完全确定: 分配内存的其中两种方式:…
进程:一个正在执行的程序,每一个进程都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元.线程:进程中一个独立的控制单元.线程控制着进程的执行.一个进程中至少有一个线程. java VM中至少有一个线程负责java程序的执行.而且这个线程运行的代码存在于main方法中.该线程为主线程. 扩展,jvm启动了两个线程,一个主线程,一个垃圾回收机制的线程. 1.怎样创建一个多线程?第一种方法:通过继承Thread类的方法 1.继承Thread类 2.重写Thread类的run()方法 目的:将自…
在之前的学习中,我写过一篇关于字符串格式化的,就主要设计到了时间以及日期的各种格式化显示的设置,其主要时通过String类的fomat()方法实现的. 我们可以通过使用不同的转换符来实现格式化显示不同的时间以及日期信息,但我们了解到,时间以及日期的转换符实在是太多了,导致我们无法十分方便的在需要的时候格式化出想要的日期时间输出格式. 然而在学习过程中,我们了解到类是可以相互调用的,以及静态方法是可以跨类使用的,,所以,通过本文,将构建一个显示时间日期的工具类,定义几个常用的日期时间格式,之后我们…
题目补充: 创建一个接口Shape,其中有抽象方法area,类Circle .Rectangle实现area方法计算其面积并返回. 又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar: 在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle对象: 如是2,生成Rectangle对象:如是3,生成Star对象).然后将Vector中元素依次取出,判断其是否为Star类.如是返回其…
在Java中,Set的底层事实上是基于Map实现的,Map内部封装了一个Entry内部接口,由实现类来封装key-value对,当value值均为null时,key的集合就形成了Set.因此,Map集合具有如下的一些特点: 1. Key集因为是Set的实现,因此是无顺序.不可重复的. 2. Value集是List的实现,因此是可以重复的,每个元素根据key来索引. 3. Map内部包含一个Entry内部接口,用于定义key-value对,由实现类来对外提供查找和设置value的方法. Map的基…
Java手册 java.io 类 File java.lang.Object java.io.File 所有已实现的接口: Serializable, Comparable<File> public class Fileextends Objectimplements Serializable, Comparable<File> 文件和目录路径名的抽象表示形式. 用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录.此类呈现分层路径名的一个抽象的.与系统无关的视图.抽象…
Object类 Object 是类层次结构的根类.每个类都使用 Object 作为超类,所有对象(包括数组)都实现这个类的方法.了解Object的方法是很有必要的. protected Object clone() //创建并返回此对象的一个副本,用于克隆对象. boolean equals(Object obj) //判断当前对象与给定对象obj是否“相等”. protected void finalize() //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法. C…
1.init()方法:程序片第一次被创建,初次运行初始化程序片时调用. start()方法:每当程序片进入web浏览器中,并且允许程序片启动他的常规操作时调用(特殊的程序片被stop()关闭):同样在init()后调用. paint()方法:基础类Component的一部分(继承结构中上朔三级).作为update()的一部分调用,以便对程序片的画布进行特殊的描绘. stop()方法:每次程序片从web浏览器的视线中离开时调用,时程序片能关闭代价高昂的操作:同样在调用destroy()前调用. d…
线程和进程的基本概念 进程和线程是动态的概念.         进程是 "执行中的程序",是一个动词,而程序是一个名词,进程运行中程序的"代码",而且还有自己的计数器,寄存器,它会向系统申请系统资源.         线程是进程中的一个控制流.一个程序可能可能包含多个任务并发运行,而线程就是指一个任务重头到尾的执行流.         说的在简单点,线程是执行中的任务,一个程序包含多个任务.   多线程        单处理器中,为提高处理器的使用率(最终目标),使…
Cookie操作类. 包括创建.读取.修改.获取.销毁cookie import java.util.Hashtable; import java.util.Iterator; import java.util.Set; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Cookie…
1.类加载器 ·简要介绍什么是类加载器,和类加载器的作用 ·Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader ·类加载器也是Java类,因为其他是Java的类加载器本身也要被类加载器加载,显然必须有第一个加载器不是Java类,这正是BootStrap ·Java虚拟机中的所有类加载器采用具有树形结构进行组织,在实例化每个类装载器对象时,需要为其指定一个父类级的装载器对像或者采…
Java多线程——线程的创建方式 摘要:本文主要学习了线程的创建方式,线程的常用属性和方法,以及线程的几个基本状态. 部分内容来自以下博客: https://www.cnblogs.com/dolphin0520/p/3913517.html https://www.cnblogs.com/trust-freedom/p/6606594.html 线程的创建 Thread类和Runnable接口 Thread类实现了Runnable接口,实现了Runnable接口里的run()方法. 事实上,查…