
Java语言编程基础
文章平均质量分 65
z犬夜叉
兴趣,三分热度 + 七分坚持
展开
-
Java多态细节与instanceof关键字
多态无继承,无多态 多态作为OOP三大特性之一,在现实生活中,表现为一个对象可以有多种形态 OOP语言中也就是一个对象对应着不同类型,代码的直接体现在于父类或者接口的引用指向其子类的对象好处 提高了代码的扩展性,前期定义的代码可以使用后期的内容比如下面添加其他具体动物类,都可以实现eat()方法,父类引用型变量绑定通过不同的对象调用同名的不同方法弊端 前期定义的内容不能使用后期子类的特原创 2016-04-05 13:40:01 · 2665 阅读 · 0 评论 -
Java文档注释生成说明书
javadoc 命令行用法 -overview 从 HTML 文件读取概览文档 -public 仅显示 public 类和成员 -protected 显示 protected/public 类和成员 (默认值) -package原创 2016-03-28 01:08:48 · 707 阅读 · 0 评论 -
多线程访问共享区示例
import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;//缓冲池(共享区) class Pool { final Lock lock = new ReentrantLock原创 2017-03-02 14:49:05 · 415 阅读 · 0 评论 -
Java中String字符串初始化细节
Java中String类型细节一 . String两种初始化方式1 . String str1= “abc”;//String类特有的创建字符对象的方式,更高效 在字符串缓冲区中检测”abc”是否存在 若存在则不重复创建,将地址赋值给str1. 若不存在,则在字符串缓冲区中创建对象并赋地址给str1.2 . String str1= new String( “abc”); //构造函数初始原创 2017-03-04 00:42:05 · 33572 阅读 · 2 评论 -
Java中创建线程的两种方式
创建线程的目的是为了开启一条执行路径,去运行指定的代码和其他代码,实现并行运行。 (实际上时根据操作系统的调度算法,分时间片运行,但由于cpu处理速度很高,宏观上看成时同时运行) 而运行的指定代码就是这个执行路径的任务。jvm创建的主线程的任务都定义在了主函数中。自定义的线程的任务被封装在run()方法中, run方法中定义就是线程要运行的任务代码。Thread类用于描述线程,线程是需要任原创 2016-04-17 23:23:34 · 1844 阅读 · 0 评论 -
线程示例:多线程卖票
第一种创建线程方式class SellWindow extends Thread { private String window;//窗口号,即线程编号 private static int count = 100;//假设有100张票,必须设置成静态,否则每个线程都拥有100张票 SellWindow(String window) { super原创 2016-04-18 14:06:21 · 525 阅读 · 0 评论 -
Java线程之1.5版新特性多生产者多消费者(四)
在Java1.5以前的版本中,因为监视器是来自于Object,为了线程的互斥访问,用的synchronized方法或者模块在synchronized中,“锁”的操作是隐式的,而且每一个锁里只能有一组wait-notify或是wait-notifyAll方法,这样的弊端在于 等待和唤醒的缓冲线程里不仅包括了生产者也包括了消费者,这样就不能指定唤醒进程,要么唤醒了全部进程,影响了效率,要么休眠了所有原创 2016-04-26 19:40:06 · 356 阅读 · 0 评论 -
Object常用方法介绍及注意事项equals(),hashCode(),getClass(),toString()
equals public boolean equals()官方API描述 : equals 方法在非空对象引用上实现相等关系 Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。 实际中,根据对象 的特有内容来判断对象是原创 2016-04-14 23:54:12 · 576 阅读 · 0 评论 -
Java中String,StringBuffer,StringBuilder常用方法及使用实例
package stringtest;public class StringOpera {public static void main(String[] args){ String[] str1 = { "NBA", "ABC", "Mike", "NBA", "NG", "OK", "NBA" }; stringSort(str1); stringPrint原创 2017-03-12 16:33:49 · 5480 阅读 · 0 评论 -
Myeclipse tomcat 部署项目报错
Deployment is out of date due to changes in the underlying project contents……项目是没有什么问题的,至于jar包也是没有问题的查了很久居然是。。。 运行的时候选择管理员运行myeclipse可能是安装的时候没有指定用户,设置成管理员权限后再部署就没有什么问题了原创 2017-09-08 14:33:09 · 745 阅读 · 0 评论 -
idea 编译报错:Error connecting to 127.0.0.1:10435; reason: failed to create a child event loop
报错日志:Error:Abnormal build process termination: "C:\Program Files\Java\jdk-9.0.1\bin\java.exe" -Xmx700m -Djava.awt.headless=true -Djdt.compiler.useSingleThread=true -Dpreload.project.path=D:/Code/...原创 2018-06-11 11:32:32 · 4098 阅读 · 2 评论 -
万能进制转换程序模块
class Trans{ public static void main(String[] args) { transToBinary(213); transToHex(213); transToOctal(213); }public static void transToBinary(int num){ Sys原创 2016-03-18 23:58:16 · 639 阅读 · 0 评论 -
简单的Java1.4版synchronized多线程的死锁演示
尽量避开死锁是开发的宗旨,因为死锁不是程序错误,是设计错误,一旦出现线程死锁,很难分析出来常见的线程死锁就是同步模块的嵌套,面试常用以下是线程死锁示例:class Test implements Runnable{ boolean flag = true; Object obj = new Object();//锁 public void run() {原创 2016-04-23 00:16:50 · 549 阅读 · 0 评论 -
Java接口特征与细节
接口书面定义: Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。在java中不直接支持多继承,因为会出现调用的不确定性。所以java将多继承机制进行改良,在java中变成了多实现。当一个抽象类里面全部是抽象方法时,且与继承类之间实现功能体现更强于所属关系,就可以定义为接原创 2016-04-02 23:50:53 · 2159 阅读 · 0 评论 -
内部类和匿名内部类
内部类定义在类里面的类分析事物时,发现该事物的描述还有事物,且这个事物还在访问被描述事物的内容内部类编译生成的字节码文件名是 外部类名$内部类名内部类也可以定义在局部,但是只能访问局部中被final修饰的局部变量class Outer{ private int outerNum = 1; class Inner { int num = outerN原创 2016-04-07 15:06:52 · 355 阅读 · 0 评论 -
Java异常处理throws,throw关键字try,catch,finally模块
ThrowableThrowable是所有的错误和异常的超类,有两大实例Error 一般不处理,由JVM抛出Exception 可预测可处理 —–编译时异常 :只要是Exception和其子类都是,除了特殊子类RuntimeException体系都必须针对性处理 —–运行时异常 :RuntimeException和其子类,直接中断功能,停止继续运行 这是Java异常体系: 异常声明J原创 2016-04-12 23:49:41 · 889 阅读 · 0 评论 -
Java异常处理
一个简单可以体现面向对象思想及Java异常处理的代码演示 主要参与对象:使用者,手机 可能异常: 手机 - 死机,损坏(只列举两个) 使用者 - 不知所措 处理: - 重启手机(手机) - 重配手机(公司)class DeathException extends Exception //手机异常1{ DeathException(String msg) {原创 2016-04-12 23:58:24 · 397 阅读 · 0 评论 -
Java线程之等待wait唤醒notify示例(一)
线程等待,线程唤醒“锁“中的主要方法 wait(): 让线程处于冻结状态,被wait的线程会被存储到线程池中。 notify():唤醒线程池中一个线程(任意),没有顺序。 notifyAll():唤醒线程池中的所有线程。 因为synchronized模块的监视器是任意对象,所以这些方法定义在Object中注意: **这些方法都必须定义在同步中。因为这些方法是用于操作线程状态原创 2016-04-26 16:36:43 · 6777 阅读 · 0 评论 -
Java线程之单生产者单消费者示例(二)
在Java1.5以前的版本中,因为监视器是来自于Object,为了线程的互斥访问,用的synchronized方法或者模块在synchronized中,“锁”的操作是隐式的,而且每一个锁里只能有一组wait-notify或是wait-notifyAll方法,这样的弊端在于等待和唤醒的缓冲线程里不仅包括了生产者也包括了消费者,这样就不能指定唤醒进程,要么唤醒了全部进程,影响了效率,要么休眠了所有进程,原创 2016-04-26 16:47:06 · 592 阅读 · 0 评论 -
Java线程之interrupt终止线程,Thread中的主要方法(五)
如何停止线程stop方法有其固有的不安全性,一般不使用。 而是使用的Thread类中提供的interrupt方法 public void interrupt()中断线程。 如果当前线程没有中断它自己(这在任何情况下都是允许的),则该线程的 checkAccess 方法就会被调用,这可能抛出 SecurityException。 如果线程在调用 Object 类的 wait(原创 2016-04-26 19:58:40 · 512 阅读 · 0 评论 -
Java线程之1.4版多生产多消费者示例(三)
多生产者,多消费者从单生产者单消费者示例进化而来注意两个变化的地方:为判断标记任务循环体的if—->while为避免死锁唤醒notify–>notifyAll分析下(if+notifty)的安全隐患tp0先开锁获取CPU执行权 生产:1 然后flag=true, 唤醒进程缓冲池(),退出然后如果tp0,tp1再获得CPU执行资格,但是判断flag=true,进入缓冲池(tp0,tp1)原创 2016-04-26 17:00:33 · 346 阅读 · 0 评论 -
多线程弊端及解决办法
多线程的弊端共享数据错误 当多个线程共享数据,且共享区有两条以上代码时,线程切换可能发生在共享区,这时很容易引起数据错误简单的比方就是本来是一批资源被多个人使用,本来应该是一个人使用结束后再下个人使用,但是现在每个人用一会儿,而且每个人都不知道这个资源还有别人使用,自己只能记录自己使用的情况,如果有个产品使用这个资源要三道工序,第一道供需完了后实际资源被给了其他人,那自己再次使用时记录的还是资原创 2016-04-22 23:04:09 · 3688 阅读 · 0 评论 -
单例模式中的线程安全问题
关于单例模式的线程安全问题: 1. 饿汉式不存在线程安全问题 2. 懒汉式有线程安全隐患解决办法:方式一:同步函数,每次线程进去都要先判断锁,效率低,但是写法简单class Single{ private static Single s = null; private Single(){}//同样私有化构造函数 public static synchronized原创 2016-04-22 23:41:01 · 760 阅读 · 0 评论 -
idea maven 项目中导入ojdbc依赖包
oracle jdbc并不能向mysql那样直接配置,原因是Oracle授权问题,Maven3不提供oracle JDBC driver,需要手动配置下,这里直接用idea自带的maven,省去安装配置相关maven参数pom.xml 中配置<dependency> <groupId>com.oracle</groupId> <artifa...原创 2018-06-19 15:44:12 · 12598 阅读 · 0 评论