Java
文章平均质量分 62
Maxwell_7
这个作者很懒,什么都没留下…
展开
-
关于数据和字符串之间相互转换的说明
package test;import java.util.*;public class Test{ public static void main(String[] args){ Scanner tc = new Scanner(System.in); boolean flag =true; System.out.print("请输入一个正整数:"); long a =原创 2015-01-27 15:09:36 · 365 阅读 · 1 评论 -
线程之间的通信
不同功能的线程之间有时候是需要相互交换信息的,有几种线程之间通信的方法。1、传统的线程通信借助于Object类的三个方法,分别是wait()、notify()、notifyAll()。使用这三种方法来实现线程通信的一般是用synchronized实现线程同步的类。 wait():让当前线程处在暂停状态,也就是阻塞状态,直到阻塞之间结束或者是其他线程调用该同步监视器的n原创 2015-04-29 18:30:26 · 368 阅读 · 0 评论 -
Java多线程的三种实现方式
1、通过继承Thread类来实现多线程 在继承Thread类之后,一定要重写类的run方法,在run方法中的就是线程执行体,在run方法中,直接使用this可以获取当前线程,直接调用getName()方法可以获得当前线程的名称,多线程的名称一般为Thread-n。而在主方法中,需要调用Thread.currentThread()方法来获取当前线程。需要注意的是,主线程原创 2015-04-27 14:00:26 · 614 阅读 · 0 评论 -
Thread线程的生命周期
Thread线程创建并启动之后,并不是立即进入执行状态,也不会一直处于执行状态,因为CPU在同一个时间点只能处理一个线程,多线程执行时,CPU需要在多个线程之间来回切换。 一个线程的生命周期分为创建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)五种状态。 创建:使用new原创 2015-04-27 14:45:43 · 658 阅读 · 0 评论 -
关于swing界面创建以及窗口放在屏幕中央的方法
/*********************************************************************************************** * 关于创建swing界面,swing用户界面一般包含两种,一种是组件,一种是容器 * 常见的组件主要有:按钮、文本框、文本区域、标签、复选框、单选按钮、滚动条、列表、菜单项和滑块 * 常见的容器主要原创 2014-11-26 16:41:52 · 3088 阅读 · 0 评论 -
线程阻塞的原因
线程在运行的过程中因为某些原因而发生阻塞,阻塞状态的线程的特点是:该线程放弃CPU的使用,暂停运行,只有等到导致阻塞的原因消除之后才回复运行。或者是被其他的线程中断,该线程也会退出阻塞状态,同时抛出InterruptedException。 导致阻塞的原因有很多种,大致分为三种来讨论,分别是一般线程中的阻塞,Socket客户端的阻塞,Socket服务器端的阻塞。一般线原创 2015-05-15 09:46:23 · 22167 阅读 · 3 评论 -
用嵌套递归的方法搜索指定目录下的所有文件
在File类的IO操作过程中,常常要查看指定目录下的文件,无论是文件夹还是文件名,这里我们希望能搜索指定目录下的所有文件。 具体的方法时采用函数的嵌套调用的方法。step 1:创建一个方法seeFilestep 2:判断当前的文件不为空step 3:判断当前文件是否为文件夹,如果不是,直接打印。如果是文件夹,用一个FIle数据取出所有当前文件夹的所有文件Fil原创 2015-05-20 08:55:37 · 927 阅读 · 0 评论 -
为什么要使用线程池
当程序需要创建大量的生存期很短的线程时,应该考虑使用线程池来提高性能。 线程池在系统启动时会创建大量空闲的线程,当线程对象传递给线程池之后,线程池就会启动其中一个线程来执行该对象的run或者call方法。执行完毕后,该线程并不会消亡,而是返回线程池,变成空闲状态。等待执行下一个run或者call方法。 举个例子,首先创建一个Runnable的实现原创 2015-04-29 20:22:49 · 3065 阅读 · 0 评论 -
Socket和ServerSocket
1、简述 Socket网络编程常见的方式是客户服务器模式。这种模式下,客户端需要主动创建于服务器连接的Socket(套接字),服务器端收到了客户端的连接请求,也会创建于客户端连接的Socket,Socket看作是通信连接两端的收发器。服务器端和客户端都通过Socket来收发数据。2、Socket构造方法Socket socket = new Socket();Socke原创 2015-05-14 18:46:43 · 587 阅读 · 0 评论 -
Java反射机制
1、Java反射机制提供了以下几种功能: 1、运行时判断任意一个对象所属的类 2、运行时构造任意一个类的对象 3、运行时判断任意一个类所具有的成员变量和方法 4、运行时调用任意一个对象的方法 5、生成动态代理2、所有类的对象都是class的实例,class类实例化的方法如下 首先原创 2015-05-20 14:47:19 · 490 阅读 · 0 评论 -
为什么要创建线程池
在有些工作场景中,比如说服务器编程中,如果为每一个客户都分配一个新的工作线程,并且当工作线程与客户通信结束时,这个线程被销毁,这就需要频繁的切换工作线程,这会带来一些负担,最主要的是系统大的开销和系统资源不足问题。 首先,服务器创建和销毁工作线程的开销很大,如果服务器与很多客户端通信,并且与每个客户端通信的时间很短,那么就会在创建和销毁线程的时候造成很大的开销。原创 2015-05-15 07:42:31 · 1460 阅读 · 0 评论 -
String、StringBuffer和StringBuilder的使用
对于字符串的操作是计算机程序中最常见的行为。而字符串中最常用的类是String类、StringBuffer类。 Java中定义了String和StringBuffer两个类来封装对字符串的各种操作。它们都被放置到java.lang包中,两者不同的是,String类是不可变字符序列类,而StringBuffer是可变的字符序列类。这里的不可变是指String类对象实例化以后,所有的属原创 2015-03-10 20:51:56 · 620 阅读 · 0 评论 -
Object类中的toString和equal方法
Object类是一个特殊的类,是所有类的最高层,是所有类的超类。当一个类没有指定父类时,会默认继承Object类。 换句话说,所有的类都是由Object类衍生出来的,Object类中的方法适用于所有的类。这里简要的介绍几个方法。------------------------------ 首先来说toString方法,在打印对象时,会调用toString方法。比如说原创 2015-03-08 22:29:18 · 839 阅读 · 0 评论 -
Java包装类
Java是一个面向对象的语言,但是并不是“纯”面向对象,比如说Java中的基本数据类型就不是面向对象的,这就给调用的时候带来了一些不便。为了解决这个问题,提出了包装类的概念。 包装类就是指把基本数据类型包装成类的格式,使之具有对象的特性,这样就可以像操作对象那样来操作基本数据类型,包装类位于java.lang包中,提供了基本数据类型、数字字符串和对象之间的转换。常见的一些基本数据类原创 2015-03-10 15:20:24 · 425 阅读 · 0 评论 -
Java泛型的理解
最近开始写代码的时候越来越觉得基础很重要,不同的设计思路和写的方法对代码执行效率会有很大影响。于是翻了翻书,做个简单的整理。关于java泛型,有了些新的理解。1、泛型是什么?在jdk1.5之前,java容器是没有办法记住它里面存储的对象的类型的,会把所有的对象当成object类型来处理,于是当从集合中取出对象的时候,需要做强制类型转换,这种转换一方面会让代码显得很臃肿;另一方面原创 2016-04-10 17:53:54 · 385 阅读 · 0 评论 -
在java方法中改变传递的参数的值
刚在写一个用例,需要在方法中改变传递的参数的值,可是java中只有传值调用,没有传址调用。所以在java方法中改变参数的值是行不通的。但是可以改变引用变量的属性值。可以仔细理解一下下面几句话:1、对于基本类型参数,在方法体内对参数进行重新赋值,并不会改变原有变量的值。2、对于引用类型参数,在方法体内对参数进行重新赋予引用,并不会改变原有变量所持有的引用。 3、方法体内对参数进行原创 2016-04-14 12:04:59 · 34103 阅读 · 1 评论 -
object对象重写equals方法时为什么需要重写hashCode方法
在Java语言中,equals方法在使用时: 针对包装对象,比较的是对象的值(包括 boolean,byte,char,short,int,long,float,double) 针对String对象,比较的也是String的值(因为String内部重写了equals方法和hashCode方法) 针对其他object对象,比较的是两个对象的引用是否指向同一个内存地址原创 2016-07-25 17:16:26 · 2393 阅读 · 0 评论 -
Exception和RuntimeException的区别
两种错误的区别原创 2016-06-18 14:03:03 · 1675 阅读 · 0 评论 -
线程同步和线程安全
当多线程对同一个资源对象进行操作时,改变资源的值可能会造成线程不安全。为了保证线程安全,提高程序的可靠性,必须进行线程同步。 线程同步的方法有很多种,下面一一来介绍:1、同步代码块儿 synchronized (obj) { //同步代码块儿 } 首先用synchronized修饰代码块儿,表征同步。 其次原创 2015-04-27 19:55:42 · 684 阅读 · 0 评论 -
static关键字的理解
static关键字用来声明静态变量或者是静态方法。静态变量和静态方法的重要特征是可以在对象实例化之前调用,静态变量或者静态方法不需要通过对象来进行访问,可以直接通过类名来访问。 当static用来声明变量时,此变量称之为静态变量。对于一个类来说,被static修饰的变量只有一份内存空间,而非static类型的变量对于每个对象都有一个存储空间。用static声明的类属性可以说是公共属性原创 2015-03-08 21:52:05 · 516 阅读 · 0 评论 -
字符串中各类字符统计的小练习
package test;import java.util.*;//Java工具包,这个程序中用到了该包内的scanner方法/* * 关于Java中的几个包的说明: * java.util工具包 * java.sql数据库包 * java.io输入输出流包 * java.net网络包 * java.lang基础包 */public class Test{ public原创 2015-01-27 11:00:09 · 492 阅读 · 0 评论 -
关于Java中IO包内的DataInputStream和DataOutputStream类的使用
package test;import java.io.*;public class Test { public static void main(String args[]){ int[] data ={100,101,102,103,104,105}; int t; try{ DataOutputStream out=new DataOutputStream(new原创 2015-01-22 15:34:55 · 686 阅读 · 0 评论 -
关于swing界面组件的一些学习
//设计UI界面的时候,首先将swing包导入到文件中import javax.swing.*;//定义一个GUI框架类,将其定义为容器类JFrame的子类,这是一个开发框架,创建界面的过程public class Test extends JFrame { /*************************************************************原创 2014-11-25 21:20:06 · 423 阅读 · 0 评论 -
关于FileInputStream的使用说明
package test;import java.io.*;public class Test { public static void main(String args[]) { byte[] buf=new byte[2056]; //定义一个比特组,作为缓冲空间 try{ FileInputStream fileIn=new FileInputStream原创 2015-01-26 20:57:41 · 457 阅读 · 0 评论 -
关于BufferedReader的理解
package test;import java.io.BufferedReader;import java.io.InputStreamReader;public class Test { public String strAdd(int int1, int int2){ return String.valueOf(int1+int2); } public St原创 2015-01-23 15:47:27 · 985 阅读 · 0 评论 -
关于文件读取的第一次尝试
package test;import java.io.*;public class Test { public static void main(String[] args) { try{ //使用try和catch语句,从语句中捕捉意外,在catch中作出处理 File inputFile =new File("input.txt"); File outp原创 2015-01-26 21:08:22 · 340 阅读 · 0 评论 -
关于scanner输入的说明,nextLine、nextInt、next的使用说明、类数组定义的说明
package test;import java.util.*;public class Test{ public int sNo,sAge,sJava; public String sName,sSex; Scanner input =new Scanner(System.in); public String getName(){ System.out.println原创 2015-01-26 20:49:33 · 1742 阅读 · 0 评论 -
关于线程Thread的学习
package test;/* * 关于线程Thread的理解: * 线程(thread)就是进程中的一个执行线索。Java虚拟机允许进程中同时执行多个线程。 * 每个线程都有一个优先级。具有较高优先级的线程先执行。 * 线程是操作系统分配 CPU 时间的基本实体。 * 每一个应用程序至少有一个线程,也可以拥有多个线程。 * 线程是程序中的代码流。 * 多个线程可以同时运行并能共享原创 2015-01-23 15:13:50 · 487 阅读 · 0 评论 -
关于构造方法的说明
构造方法设计的目的是对于对象的初始化。通过提供构造方法,类的设计者可以确保每个对象都会得到初始化。package test;public class Test{ private String name; private int age; private int num; public Test(){ System.out.println("无参构造方法"); } pub原创 2015-01-30 10:49:47 · 745 阅读 · 0 评论 -
获取本机的MAC地址的代码段(纯备份)
package test;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.InetAddress;import java.net.NetworkInterface;import java.net.Sock原创 2015-03-01 16:56:24 · 689 阅读 · 0 评论 -
Java中的假克隆、浅克隆、深克隆
Java中的克隆值的是对象的克隆,是指在堆空间中复制一块儿内存,是完全相同的两个对象。 假克隆是指对象的赋值,仅仅代表指针指向的改变,而不会创建新的内存单元。原创 2015-03-06 15:03:16 · 748 阅读 · 0 评论 -
Java内部类
所谓Java的内部类,简而言之就是一个类放在另外一个类的内部,称之为内部类。 一般内部类直接供给外部类使用,而其他类一般用不到这个内部类。内部类提供了更好的封装,只能让外部类直接访问,不允许同一个包中的其他类直接访问。内部类可以直接访问外部类的私有属性,内部类被当成是其外部类的成员,但是外部类不能访问内部类的内部属性,内部类中定义的属性为局部变量。通常,某一部分功能在只为外部类提供原创 2015-03-09 10:58:30 · 324 阅读 · 0 评论 -
抽象类和接口
抽象类(abstract):可以看作是一个专门设计的父类,为所有子类提供一个通用的模板,另外避免子类设计的随意性,严格限制子类的设计。抽象类也是一个类,只是比普通的类多了抽象方法。而抽象方法是指只声明而没有实现的方法,用abstract来声明,相应的类也要用abstract来声明。 1、有抽象方法的类只能定义为抽象类 2、抽象类不能实例化,不能直接new出来原创 2015-03-09 22:52:01 · 454 阅读 · 0 评论 -
容器的理解
容器:collection,是指容纳其他对象的对象,理解的时候可以参考数组,数组本身也是一个容器。容器的常用结构如下: Collection(容器接口) Set(接口): 1)、无序、不可重复的对象(通过equals和hashcode方法来判断对象是否可重复)。 2)、有个重要的HashSet的方法,内原创 2015-03-11 15:54:04 · 394 阅读 · 0 评论 -
IO流的学习
所谓流,是指一组有顺序的字节集合,是对数据传输的抽象,而又根据各种传输的需求,将流定义为各种类。各种流的一般都含有File文件的形参。要理解,流是从文件对象抽象而来的。根据流向的不同,可以分为输入流和输出流。根据处理数据的不同,可以分为字符流和字节流。一般含有Stream的是字节流,含有Reader、writer的是字符流。注意结合类的定义字符去理解它的含义。首先来总结一下各种流:原创 2015-03-13 20:07:52 · 335 阅读 · 0 评论 -
Java 基础学习
1:标识符,可以有字母、数字、下划线和美元符号组成,原创 2014-11-13 18:51:42 · 455 阅读 · 0 评论