J2SE
文章平均质量分 69
Bazingaea
生命不息 学习不止
展开
-
JAVA中的异步调用
1.什么是异步调用异步调用简单理解,就是不阻塞主线程,再开辟另一个线程异步执行main{ //前置语句 costTime(); //后置语句}在上述代码中,主线程按顺序,需要依次执行前置语句,调用costTime函数,该函数耗时较长,以及后置语句。在执行costtime函数时,主线程处于阻塞状态。当后置语句和costTime函数执行无直接关联时,他们可以一起执行,这样的执行方式,就是对costTime的异步调用,此时主线程处于非阻塞状态。2.简单实现异步调用最简单的方式,就是new Th原创 2021-03-11 16:42:25 · 2564 阅读 · 0 评论 -
JAVA-内部类、匿名类介绍
1.Nested Class在Java程序中,被定义在一个类内部的类,称为内部类(Nested Class)。内部类分为三种:Inner class,常见的内部类Anonymous Class,匿名类Static Nested Class,静态内部类2.Inner class代码示例:class Outer{ class Inner{ }}特性:Inner类示例无法独立存在,必须依附outer类Outer outer = new Outer("Nested"); //原创 2021-02-20 14:16:00 · 303 阅读 · 0 评论 -
Map按照value排序并截取Top10
递增P>0返回正值,递减P>0返回负值List<Map.Entry<String,Double>> lists=new ArrayList<Map.Entry<String,Double>>(map.entrySet()); Collections.sort(lists,new Comparator<Map.Entry<String, Double>>() { public int原创 2020-08-13 12:05:32 · 1040 阅读 · 0 评论 -
java中的正则表达式
在java JDK 1.4版本中,java.util.regex包正式支持了正则表达式在regex包中,包含了两个类,Pattern(模式类)和Matcher(匹配器类)Pattern类中常用的构造-匹配在预定义字符中,需要有“\”,反斜线字符,反斜线、转义和引用 反斜线字符 ('\') 用于引用转义构造,如上表所定义的,同时还用于引用其他将原创 2016-10-22 14:00:28 · 472 阅读 · 0 评论 -
关于javadoc和src的问题
jdk中不包括javadoc需要分别下载配置环境变量,这样才能在cmd中使用javadoc命令生成帮助文档javadoc是一种技术,它从程序源码中抽取类,方法,成员等注释行程一个和源码相配套的API帮助文档一般是生成一些html网页里面内容与在官网中看API的基本类似我们下载使用的非网页版的API,是制作成了CHM格式javasrc是源码,就是java类库的原创 2016-10-10 20:18:52 · 845 阅读 · 0 评论 -
如何利用记事本编写并运行一个java程序
1.下载jdk可以在oracle官网下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html注意选择36位还是64位下载以后按照步骤逐步安装即可但是要注意,在jdk和jre不可安装到同一目录,否则运行的时候找不到javac命令这是因为jre只是提供java程序的运原创 2016-07-02 16:42:49 · 26282 阅读 · 0 评论 -
Java中的网络支持
通过java实现网络编程,说到底还是涉及到类提供网络功能的四大类1.InetAddress:封装IP地址及DNS域解析符,没有封装端口InetAddress没有对外公共的构造方法,得到InetAddress对象的三种常用方法//使用getLocalHost()创建新对象InetAddress addr=InetAddress.getLocalHost();//10.18原创 2016-06-04 19:24:54 · 471 阅读 · 0 评论 -
Hashtable的子类Properties的使用
Properties类是Hashtable的子类: Properties类是一个属性集,它的主要作用就是读写资源配置文件,该类中的键与值都要求是字符串 资源配置文件的好处就是可以动态的切换不同数据库,你只需要更改字符串即可,不需要更改源码,然后再进行编译 下面是它的几个常用方法1.存储与读取import java.util.Properties;/**存储:setProperties(Str原创 2016-04-20 22:55:52 · 1789 阅读 · 0 评论 -
Java中创建对象的5种方式
译文链接:http://www.codeceo.com/article/5-ways-java-create-object.html英文原文:5 Different Ways to Create Objects in Java翻译作者:码农网 – 孙腾浩[ 转载必须在正文中标注并保留原文链接、译文链接和译者等信息。]作为Java开发者转载 2016-07-19 20:03:43 · 698 阅读 · 0 评论 -
分拣存储2-统计学生每个班级的总分和平均分
题目要求:定义一个Student类,属性有,name名字,no班级,score成绩,现在将若干不同班级的Student对象放入List中,统计每个班的总分和平均分题目分析:首先需要一个student类是毋庸置疑的,采用javabean模式设计一个student类,接下来就是选择集合容器来装对象了,我们可以选择List〈student〉来装student对象,然后利用泛型嵌套把List〈student原创 2016-04-16 14:23:14 · 3171 阅读 · 0 评论 -
【Socket编程】聊天室的构建
1.服务器与客户端一对一的交谈(初级)/** * server */import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class Se...原创 2016-07-07 22:59:31 · 711 阅读 · 0 评论 -
遍历Map的六种方法
public class MapDemo { public static void main(String[] args) { Map<String,String> map=new HashMap<String,String>(); map.put("depp","handsome"); map.put("tom", "batman");原创 2016-07-18 16:10:38 · 559 阅读 · 0 评论 -
JDK7新增功能-利用trycatch语句自动关闭资源
/***可自动关闭输入流*/try(Scanner console=new Scanner(System.in)){ int x= console.nextInt();}/***也可关闭JDBC用到的资源*/public class InsertSample2 { public static void main(String[] args) { XSB student原创 2016-11-04 14:23:56 · 2795 阅读 · 0 评论 -
Java中对double类型保留两位小数的方法
整理了网上一些方法,方便以后查阅。1.使用BigDecimal类BigDecimal b1 = new BigDecimal(width);BigDecimal b2 = new BigDecimal(height);BigDecimal b3 = b1.multiply(b2); return b3.setScale(2, BigDecimal.ROUND_H转载 2016-10-18 11:33:05 · 3399 阅读 · 1 评论 -
java enum(枚举)使用详解 + 总结
原文地址:http://www.cnblogs.com/hyl8218/p/5088287.htmlenum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。 下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容:1. 原始的接口定义常量2. 语法(定义)3. 遍历、switch 等转载 2016-11-30 15:21:49 · 503 阅读 · 0 评论 -
简单模拟支付宝转账系统
此案例为加深对数据库操作时,对事务的理解,当转钱过程中由于某些原因发生错误时,会出现A的钱变少而B无改变的状况,或是其他不正确的情况,注意正确的是A转给B10元,A-10 B+10,这个时候就需要使用Connection的三个方法 首先,将自动提交设置为false,这里的自动提交指的是对sql语句的提交编译通常状况下,默认是自动提交的,当调用PreparedStatemen...原创 2016-10-01 11:39:13 · 6823 阅读 · 0 评论 -
利用JAVA+MySQL实现学生选课系统
一个简单的学生选课系统,先说一下思路:首先需要选择身份,学生或者是管理员,如果选择管理员需要输入密码,菜单上的选项有的只能管理员访问比如创建菜单,有的只能学生访问,比如选课和创建学生。 如果选择了非可选的选项,则会提示不可选,然后重新选择 OPTION 1 2 创建学生,创建课程,都会将数据保存在数据库中 OPTION 3 4得到学...原创 2016-09-24 21:37:44 · 30950 阅读 · 6 评论 -
Apache和tomcat的区别
apache支持静态页,tomcat支持动态的,比如servlet一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。apache是web服务器,Tomcat是应用(...转载 2016-06-17 10:16:07 · 370 阅读 · 0 评论 -
使用JDK和CGLIB实现动态代理
在讲正题之前,先了解一下代理模式,非常形象逼真的买房子实例又要来了。A去买房子,让B房屋中介公司负责相关事宜,比如看房子结构地段和卖房公司商量价格等等(没买过房子 乱讲的)那么此时具体去买房子所要做的事情本来该是A做的,因为他要买房啊,但是却交给了B来管,此时,A是被代理对象,B为代理对象 代理模式可以分为:远程代理,虚拟代理,保护代理,智能引用代理代理模式的实现方法为;静...原创 2016-11-06 15:33:25 · 787 阅读 · 0 评论 -
java的单例设计模式
单例设计模式,确保了一个类只有一个对象,也就是不会提供对外公开的构造方法创建对象在类的内部进行,对外只提供一个共有的访问对象的方法 单例设计模式又有懒汉式,和饿汉式 懒汉式:懒汉式的设计有两个要点1.double-check的作用在于提高效率,在线程对象访问这个方法时,先判断是否有实例Jvm对象,这样当t1线程已经创建了Jvm对象以后,t2线程就可以直接返回这个J...原创 2016-05-31 21:53:16 · 540 阅读 · 0 评论 -
线程同步中的“生产者和消费者”模式
过多的线程同步可能会造成死锁死锁通俗来讲就是两个或者两个以上线程,占用了对方下一步所需要的资源,多个线程僵持都无法结束任务的状态 生产者和消费者模式是一个多线程同步的经典案例它利用信号灯来判断线程是否可以执行,可以避免线程的死锁问题在java中,生产者与消费者模式是必须通过同步synchronized才可以实现的 下面的代码中有两种不近相同的该模式代码展示(Movie,...原创 2016-06-01 15:34:25 · 710 阅读 · 0 评论 -
Java多线程之Lock的使用
原文地址:http://blog.csdn.net/huang_xw/article/details/7090177import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.locks.Lock; import转载 2016-12-04 15:07:24 · 390 阅读 · 0 评论 -
java8十个lambda表达式
1. 实现Runnable线程案例使用() -> {} 替代匿名类://Before Java 8:new Thread(new Runnable() { @Override public void run() { System.out.println("Before Java8 "); }}).start();//Java 8 way:转载 2016-12-10 21:31:36 · 431 阅读 · 1 评论 -
java Lambda表达式介绍
原文链接: Start Using Java Lambda Expressions下载示例程序 Examples.zip 。原文日期: 2014年4月16日翻译日期: 2014年4月27日翻译人员: 铁锚简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现转载 2016-12-10 21:29:00 · 501 阅读 · 0 评论 -
分拣存储3-HashMap实现学生选课
为加深分拣存储概念,熟练代码,写了一个学生选课demo 思路和前面基本一致,一共设计了四个类,Course类,Student类,分别封装了关于课程和学生的数据,StuCourse类,属性有学生姓名和List〈Course〉,以及核心代码类Mytest。有以下几点需要注意: 1. StuCourse类中需要在构造方法中初始化List,无论有没有形参,不然会出现空指针异常 2. StuCours原创 2016-04-16 16:26:27 · 872 阅读 · 0 评论 -
泛型的通配符,上限,下限以及泛型嵌套
1.通配符?:表示类型不确定,只能用于声明变量或者形参上,不能用在创建泛型类,泛型方法和接口上public static void main(String[] args) { List list=new ArrayList(); list=new ArrayList(); test(list);} public static void test(List list){ }原创 2016-04-14 11:48:47 · 1100 阅读 · 0 评论 -
分拣存储-利用HashMap统计句子中单词出现的次数
这里需要提到分拣存储,用一个发快递的示例来解释,在快递公司收到快递的时候,他会对快递进行分类,从各个地方来的快递就放在同一个袋子中,比如从北京来的快递,看看有没有北京这个袋子,如果有就放进去,没有就新建一个袋子,然后放进去。回到正题,统计句子中单词出现的次数,假设这个句子是 this is a cat and that is a mice and where is the food,当然这个句原创 2016-04-15 16:30:16 · 1223 阅读 · 0 评论 -
java中的equals()和hashcode()方法总结
前言: 在java集合框架中,常用的集合接口有List,Set,Map,其中List是有序可以重复的,Set是无序不可重复的,Map是键值对,并且Map的key值也是不可重复的,那么怎么判断set集合中添加的元素,以及Map集合中的Key值是否重复呢?这里就用到了equals和hashcode这两个方法,先来了解下这两个方法1.equals()方法 equals是根类Object的方法,源码如下原创 2016-04-16 13:22:13 · 680 阅读 · 0 评论 -
集合框架中LinkedList实现类代码分析
首先看看集合框架简图: 简单介绍一下:List和Queue是有序可重复序列,而set是无序不可重复序列;Map是键值对,一个key对应一个value; 集合类是一种工具类,就像容器,储存任意数量的具有共同属性的对象,长度可变,不同于数组; 集合中的元素,可以是任意类型的对象(对象的引用),如果把某个对象放入集合,会忽略他的类型,而把他当作Object处理链表有两种,单向链表和双向链表,前者原创 2016-04-03 16:41:50 · 580 阅读 · 0 评论 -
用JAVA(Myeclipse)实现可视化日历
日历的实现,主要用了Calender类获取信息,DateFormat,SimpleDateFormat类进行日期的格式调整,Scanner类控制输入,用两个“for”语句来实现核心的日历输出,第一个用来输出空白,第二个用来输出日期。在学习c语言的时候,打印输出一些图案,还有九九乘法表,也是用for语句循环,有时还进行for语句嵌套。 实现过程是,用户输入一个格式固定的日期,如1902-02-02,原创 2016-03-12 19:16:18 · 1498 阅读 · 0 评论 -
java垃圾回收机制(学习总结)
在java中,内存分配和垃圾回收都是交给JVM处理的,接下来就按这两大块来分析。垃圾回收**1.GC简介:**java垃圾回收机制(Garbage Collection)可以对程序中没有任何引用的对象(即不被使用的对象)所占据的内存空间进行释放。GC是由JVM在系统空闲时间执行的,程序员无权调用垃圾回收器,但可以通过System.gc();,通知GC运行,但java规范不一定会立即执行,正如上面说的原创 2016-02-27 12:50:33 · 674 阅读 · 0 评论 -
JAVASE基础知识整理(一)
关于java极简历史介绍:1995年有sun公司开发,2009年被oracle公司收购 java又可以分为三类se,ee,me,这三类概念我理解的也不深刻,就简单介绍一下: javase:基础部分,可以做出类似QQ的软件 javaee:企业级应用 网站的开发 javame:嵌入式的开发,手机,做手机游戏1.JDK的安装 下载 安装(可在oracle官网www.o原创 2016-03-21 23:04:50 · 1315 阅读 · 0 评论 -
用AWT实现简易版飞机大战
(如有问题欢迎指出,不想看我啰里啰唆一大堆的,可直接下拉有源代码)实现效果:运行以后就是这个效果图 窗口右上角会有计时 飞机躲避子弹,被子弹击中后飞机爆炸爆炸,然后游戏结束 主要需要的类:(解释取自API 1.6)1.Frame -java.awt.Frame 是带有标题和边框 的顶层窗口 2.Graphics-java.awt.Graphics 是所有图形上下文的抽象基类,允许应用程序原创 2016-03-28 13:12:05 · 2196 阅读 · 0 评论 -
java实现多线程的两个方法
方法一:实现多线程只需继承Thread类,然后重写run方法然后在main方法中创建一个Thread子类对象,调用start方法,启动线程注意我们不可以直接调用run方法,如果直接调用run无法实现多线程,调用start方法后,会将该线程添加到线程组中,交给CPU进行处理调度,系统会自动调用run方法举个例子,龟兔赛跑,分别有两个类代表乌龟和兔子,都继承了Thread类,并原创 2016-05-24 20:16:12 · 666 阅读 · 0 评论 -
TreeSet和TreeMap实现排序
TreeSet TreeSet类是Set接口的一个实现类,确保元素实体可以排序,不同于HashSet(也是Set接口的实现类),TreeSet不需要重写hashcode和equals方法。 TreeSet的构造方法有以下几种 那么就可以有两种排序方式 1. java.lang.Comparble+compareTo new TreeSet() 用这种原创 2016-04-17 14:25:23 · 1740 阅读 · 0 评论 -
HashMap和Hashtable的区别
1.他们继承的父类不同 HashMap的父类是 AbstractMap,Hashtable的父类是Dictionary2.HashMap允许使用 null值和 null键,Hashtable中任何非 null 对象都可以用作键或值,也就是键与值不能为空3.Hashtable线程安全,同步,效率相对低 HashMap线程不安全,非同步,效率高原创 2016-04-18 11:54:41 · 377 阅读 · 0 评论 -
迭代器Iterator接口
集合框架中遍历list是比较方便的,我们只需有一个for循环即可遍历list中的所有元素,因为list是有序的,而set是无序的,那么如何遍历set集合呢?就需要用到Iterator对象了,Iterator对象称作迭代器,来实现对容器内元素的遍历。Iterator接口包含三个方法,hasNext(),next(),remove() 下面解释来自API JDK1.6集合Collect原创 2016-04-09 22:36:27 · 1904 阅读 · 0 评论 -
利用java集合框架实现扑克牌比大小游戏
程序实现前提: 1.了解java集合框架 2.Collections工具类 3.Comparable,Comparator接口 游戏要求: 游戏有两个玩家,分别会得到两张纸牌,然后进行比较大小,拿到纸牌最大者获胜,比较规则:比较数字(2,3,4,5,6,7,8,9,10,J,Q,K,A)按这个顺序,越往后越大,数字一样则比较花色(黑桃,红桃,梅花,方块),越往后越大。代码分析: 首先需要原创 2016-03-14 15:04:33 · 11812 阅读 · 6 评论 -
Collections工具类中的sort方法
1.了解Collections工具类 Collections工具类是java集合框架的成员,是一种用来操作集合对象的工具类,在Collections类中有一个sort()方法,可以对给定的集合进行排序。集合列表中所有元素都要实现Comparable接口。由于不可使用基本类型作为泛型,我们对它们相应的包装类进行操作。对以包装类为泛型的集合的排序,是根据元素的自然顺序,对指定列表按升序进行排序。2.C原创 2016-03-14 14:08:26 · 2659 阅读 · 0 评论 -
java中的网络支持-socket编程
服务端执行server.accept方法以后,会处于阻塞状态,也就是直到启动了客户端,从客户端传来信息才会继续运行下去,而客户端在启动后也处于阻塞状态,直到服务端给它回应才会继续运行下去先运行服务器后,控制台不会有任何输出运行客户端以后,服务器端才会输出“一个客户端建立连接”然后客户端输出 ”欢迎使用“服务端:/** 必须先启动服务器 后连接1、创建原创 2016-06-07 22:13:01 · 358 阅读 · 0 评论