JAVA 基础知识
文章平均质量分 72
李卫康的博客
本人学识渊博、经验丰富,代码风骚、效率恐怖,c/c++、java、php无不精通,熟练掌握各种框架,深山苦练20余年,一天只睡4小时,千里之外定位问题,瞬息之间修复上线。身体强壮、健步如飞,可连续编程100小时不休息,讨论技术方案5小时不喝水,上至带项目、出方案,下至盗账号、威胁pm,啥都能干。泡面矿泉水已备好,学校不支持编程已辍学,家人不支持编程已断绝关系,老婆不支持编程已离婚,小孩不支持编程已送养。
展开
-
死锁
如何写一个死锁这个案例的步骤:1、建立两个锁类 分别是锁A 锁B//建立两个锁 A锁 B锁//锁Aclass LockA{public static final LockA locka=new LockA();}/ /锁Bclass LockB{public static final LockB lockb=new LockB();}2、建立线程原创 2014-11-26 11:16:28 · 601 阅读 · 0 评论 -
IO流之字符流
字符流家族:有时候使用字节流读取文本文件很不方便,因此就诞生了字符流.其实字符流就是字节流+编码我们通过了转化流引出了字符流(见我的博客点击打开链接) Reader-->FileReader-->BufferedReader1.一次读取一个字符&一次读取一个字符数组package cn.itcast_04;import java.io.FileReader;import java原创 2015-08-10 16:50:50 · 518 阅读 · 0 评论 -
IO流之复制文件
1.使用FileInputStreampackage cn.itcast.io;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStre原创 2015-08-10 16:54:31 · 496 阅读 · 0 评论 -
面试常见问题 死锁代码&单例模式
1.写一个死锁1)写一个锁类包含两个锁 锁A以及锁Bpackage cn.itcast.dieLock;public class MyLock { public static Object objA=new Object();//定义两把锁 public static Object objB=new Object();}2)死锁类package cn.itcast.di原创 2015-08-11 20:35:07 · 1101 阅读 · 0 评论 -
输入流&输出流经典案例
1.复制单机目录package cn.itcast.test;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;i原创 2015-08-10 20:32:53 · 2410 阅读 · 0 评论 -
Java 多线程实现的两种方式
如何写一个 线程程序:方式一:1)写一个类继承Thread类,重写run()方法2)创建这个类的对象,调用start()代码:MyThread--->提供一个构造方法调用父类的构造方法 为了是给线程提供一个名字!package cn.itcast.thread;public class MyThread extends Thread{ private String原创 2015-08-11 20:14:07 · 837 阅读 · 0 评论 -
多线程之多窗口卖票&线程之间的通信
案例一:使用多线程完成三个窗口卖票(不能出现重复卖票以及负数票)卖票程序SellTicket 这里使用Lock类中的方法实现加锁和释放锁!package cn.itcast.thread2;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public cl原创 2015-08-11 20:28:32 · 1961 阅读 · 0 评论 -
JavaSE 最容易出错的几个简单的问题
案例1.package cn.itcast.oop;public class ThisDemo { public static void main(String[] args) { Student s=new Student(); s.setName("李卫康"); s.setAge(22); String name=s.getName(); int age=s.ge原创 2015-08-17 15:51:30 · 1035 阅读 · 0 评论 -
JavaSE 面向对象内存图&静态变量内存图
代码:package cn.itcast.oop;public class PhoneDemo { public static void main(String[] args) { Phone p = new Phone(); //给成员变量赋值 p.brand = "小米"; p.price = 1999; p.color = "红色"; System.out.原创 2015-08-17 15:17:11 · 762 阅读 · 0 评论 -
多态&抽象&继承
多态package cn.itcast.extend;public class ExtendDemo2 { public static void main(String[] args) { A a=new B();//多条 System.out.println(a.num); a.show();//非静态 a.say();//静态方法 }}class A{ int原创 2015-08-17 20:36:05 · 700 阅读 · 0 评论 -
JavaSE之内部类
内部类分类:成员内部类:在成员位置声明的类,叫成员内部类.局部内部类:在局部变量定义的类,叫局部内部类.1.成员内部类:非静态成员内部类://格式 外部类名.内部类名 对象名=new 外部类().new内部类();package cn.itcast.inner;public class InnerDemo2 { public static void main(String原创 2015-08-17 22:28:49 · 694 阅读 · 0 评论 -
面向对象的理论知识(总结)
JAVA是一种面向对象的语言,它本身具有面向对象的三大特性--封装,继承,多态。开发时,我们要记住,属性是用于存储数据的。直接被访问,容易出现安全隐患。所以,类中的属性通常被私有化,并对外提供公共的访问方法。这个方法一般有两个,规范写法:对于属性xx,可以使用setXX(),getXX()对其进行操作。 一、类的成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。局部变量存在于转载 2015-08-17 22:31:06 · 1005 阅读 · 0 评论 -
JavaSE 揭秘枚举类型
1.模拟枚举类型定义一个类WeekDay:说明:对于WeekDay中的抽象方法nextDay() 因此类也需要声明为抽象的!当new对象的时候要重写其中的抽象方法!package cn.itcast.demo;public abstract class WeekDay { private WeekDay(){}//私有构造方法 public final static WeekD原创 2015-08-18 10:08:56 · 809 阅读 · 0 评论 -
这道Java面试题你真的理解么?好多大神都回答错误!
最简单面试题:代码:package cn.itcast.sort;public class Demo1 { public static void main(String[] args) { new Zi(); }}class Fu{//父类 Fu(){ show(); } void show(){ System.out.println("Fu"); }}原创 2015-10-13 11:43:23 · 924 阅读 · 1 评论 -
使用单循环实现冒泡排序
对于冒泡排序是最容易,也是最容易在笔试中遇到的试题:接下来我们讨论一下单循环的冒泡排序是如何实现的.直接上代码:package cn.itcast.sort;public class BubbleSort { public static void main(String[] args) { int arr[]={2,6,5,4,9}; bubbleSort(arr); f原创 2015-10-13 11:33:15 · 2311 阅读 · 0 评论 -
exe4j工具打包java Swing编写的软件
java之所以能够跨平台运行,正式因为java虚拟机。但并不是每个客户的电脑都安装我们java程序员熟悉的JDK,因此如何让java编写的Swing软件运行在客户的PC端?对于打包exe可执行程序的步骤如下:第一步:下载exe4j工具,链接地址:点击打开链接第二步:打开exe4j运行界面如下所示第三步:建立一个exe4j输出目录,其实就是我们要打成exe的目录。在桌面建立s原创 2017-05-10 21:35:26 · 2404 阅读 · 1 评论 -
JavaSE 文件递归之删除&获取文件夹目录中所有的以.jpg的文件的绝对路径
1.递归删除文件如果一个文件夹下面还有子目录,进行删除的话会 报错,这个时候要使用递归的方式来删除这个文件目录中的所有文件以及文件夹package cn.itcast.digui;import java.io.File;/** * 递归删除demo文件夹中所有文件包括文件夹 * 分析: * A:封装目录 * B:获取改目录下的所有文件或者文件夹 * C:遍历改file数组原创 2015-08-10 16:23:37 · 1984 阅读 · 0 评论 -
IO流之字节流
字节输入流家族的基类inputStream-->fileInputStream-->BufferedInputStream字节流读取数据的的方式:1.一次读取一个字节package cn.itcast.io;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.F原创 2015-08-10 16:42:15 · 625 阅读 · 0 评论 -
java的递归实现原理
打印5的阶乘 5!1.普通方法实现package cn.itcast.digui;public class DiGuiDemo { public static void main(String[] args) { int temp=1;//初始值是1 for(int i=2;i<=5;i++){ temp*=i;//每遍历一次就乘以 } System.out.p原创 2015-08-10 13:12:10 · 7840 阅读 · 1 评论 -
多线程的单例模式
1.我们需要了解懒汉单例模式:1.1 私有的构造方法,为了不让外界new对象,所以构造方法我们使用private关键字1.2私有的静态的自身类对象,设置为静态的的主要是为了下面的方法,静态的方法只能调用静态的变量1.3这个方法就是构建了自身的类的对象的方法:设置为静态是为了使用类名直接.出来package thread;/* * 多线程的单例模式 * 必须要会的,面试要原创 2014-11-26 10:56:54 · 542 阅读 · 0 评论 -
Java集合框架中hashSet的执行原理
细说HashSet1、hashSet的底层是数据结构的哈希表,hashSet本身是没有功能的,他的主要功能是来源于hashMap的 查看hashSet的源代码可以发现hashset中定义了一个HashMap 也就是说他的功能主要来源于hashMap,hashSet调用的hashmap的方法。2、倘若我们要实现去掉hashSet中重复的元素的话,首先我们来看一下网hashset中添加Stri原创 2014-12-04 10:59:13 · 529 阅读 · 0 评论 -
自定义的单元测试类
自定义的单元测试类1、需要一个测试类 Demo1Testpublic class DemoTest1 { @MyTest public void test1(){ System.out.println("test1执行了"); }}2、需要一个注解MyTest@Target({ElementType.METHOD})@Retention(RetentionPolicy.原创 2014-12-04 10:47:06 · 869 阅读 · 0 评论 -
很基础,但是好多人不了解
在这里我将说明java中的继承体系中的一个很重要的知识点,其实这个知识点困惑了我好久了,希望大家不要走我这条弯路,希望大家看了我的代码能够对java中的继承有深刻的了解1、建立了一个 抽象的Company类:package override;public abstract class Company { private String name; private int age;原创 2014-12-09 22:06:08 · 578 阅读 · 0 评论 -
三角螺旋矩阵
这是一个使用java程序实现三角螺旋的试题。原创 2015-03-27 14:41:58 · 2218 阅读 · 0 评论 -
用Hashtable实现字符串中字符的个数的查询
我觉得很吊的文章转载 2015-03-22 22:36:11 · 962 阅读 · 0 评论 -
this变量
大部分的人会猜这道题很简单啊,不就是在new对象的时候调用子类的构造函数,而子类的构造函数要首先调用父类的没有参数的构造函数,因此赋值给i的是222,所以结果应该为222.但是正确答案是什么呢?答案既不是2,也不是22,也不是222,答案结果却是0.为什么会这样呢。我们需要详细的解答一下代码的执行流程: 1.调用子类的构造函数,子类的构造函数先调用父类的构造函数。因此调用父类的构造函数,执行变量i的初始化,此时i=2,接着调用display函数,但那是构造函数的this指的是谁?this是调用的就是谁,故原创 2015-04-15 22:46:59 · 967 阅读 · 0 评论 -
单例模式的两种形式(恶汉式,懒汉式)
单例模式的特点:解决了一个类在内存的唯一性,这个类的对象只有一个。写单例模式的步骤:1. 私有修饰构造方法2. 在本类的成员位置, new 自己类的对象3. 提供一个静态方法,返回本类的对象A: 恶汉式package demo01;/** * 单例设计模式恶汉式 * @author Administrator * */public class SingleDes原创 2015-05-17 21:53:41 · 1682 阅读 · 0 评论 -
查询字符串中字母的个数(两种实现方式1,list与set集合 2,map集合)
题目:取出一个字符串中字母出现的次数。如:字符串:"abcde%^kka27qoq" ,输出格式为:a(2)b(1)k(2)...第一种方式(set和list结合使用):package itheima;import java.util.ArrayList;import java.util.LinkedHashSet;import java.util.List;import原创 2015-05-29 17:59:22 · 1171 阅读 · 0 评论 -
如何修改类的成员属性的默认值
这是一道黑马入学测试题:存在一个JavaBean,它包含以下几种可能的属性: 1:boolean/Boolean 2:int/Integer 3:String4:double/Double 属性名未知,现在要给这些属性设置默认值,以下是要求的默认值:String类型的默认值为 字符串 www.itheima.com int/Integer类型的默认值为100bool原创 2015-05-28 16:32:43 · 7184 阅读 · 0 评论 -
如何在ArrayList<Integer>中添加String类型数据
黑马入学测试题:ArrayList list = new ArrayList();在这个泛型为Integer的ArrayList中存放一个String类型的对象。package itheima;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import jav原创 2015-05-28 16:36:07 · 4313 阅读 · 0 评论 -
黑马入学测试题
定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法;例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。package itheima;/** * 1.定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法;例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。 * @author Administrator * */public enum L原创 2015-05-28 16:37:16 · 946 阅读 · 0 评论 -
泛型限定<? extends Object>
关于泛型限定:向上限定。意思就是说只能传递E类型以及E类型的子类;代码:package itheima;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * 泛型限定 * @author Administrator * */public class Gene原创 2015-05-28 23:15:38 · 1262 阅读 · 0 评论 -
myelipse设置护眼
1、打开 window / Preference,弹出 Preference 面板2、展开 General 标签,选中 Editors 选项,展开。3、选中 Text Editors,右边出现 TestEditors 面板。 面板中有这样一个选项:Appearance color options; 其中是各种板块颜色的设置, 其中有一项是 backgroundcolor,勾掉 Sy原创 2015-06-29 21:51:13 · 702 阅读 · 0 评论 -
JavaSE File类详细介绍
一.创建文件对象的三种形式package cn.itcast.file;import java.io.File;public class FileDemo { public static void main(String[] args) { File file=new File("E:\\demo\\a.txt"); File file2=new File("E:\\demo原创 2015-08-10 11:19:52 · 917 阅读 · 0 评论 -
自定义注解随笔
目前java开发已经趋向于使用注解开发,包括我们最熟悉的框架spring,已经从xml过度到了annotation,而现在最流行的微服务springcloud是基于springboot开发的一套微服务解决方案。其中的springboot的配置文件已经不复存在,而是使用配置类,配置类中使用了大量的annotation。可见annotation在开发中的重要性!创建自定义注解要创建一个自...原创 2018-05-02 15:47:06 · 347 阅读 · 0 评论