
JAVA
文章平均质量分 66
尚振伟
生如逆旅单行道,哪有岁月可回头。。。。。。。。。。
展开
-
浅析HashMap的put()方法执行流程
HashMap的数据结构在jdk1.8之前是数组+链表,为了解决数据量过大、链表过长是查询效率会降低的问题变成了数组+链表+红黑树的结构,利用的是红黑树自平衡的特点。链表的平均查找时间复杂度是O(n),红黑树是O(log(n))。HashMap中的put方法执行过程大体如下:1、判断键值对数组table[i]是否为空(null)或者length=0,是的话就执行resize()方法进行扩容。2、不是就根据键值key计算hash值得到插入的数组索引i。3、判断table[i]==nul..原创 2022-04-12 08:52:34 · 11074 阅读 · 0 评论 -
浅议Lambda表达式
Lambda介绍Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。JDK 也提供了大量的内置函数式接口供我们使用,使得 Lambda 表达式的运用更加方便、高效。对接口的要求虽然使用 Lambda 表达式可以对某些接口进行简单的实现,但并不是所有的接口都可以使用 Lambda 表达式来实现。Lambda 规定接口中只能有一个需要被实现的方法,不是规定接口中只能有一个方法,因为原创 2022-04-09 12:39:34 · 573 阅读 · 0 评论 -
体验JAVA中的构造函数
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9月11日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:*程序输入:*程序输出:两个数加减乘除后的结果*问题分析原创 2014-09-11 15:04:54 · 581 阅读 · 0 评论 -
Java加减乘除
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9月11日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:*程序输入:*程序输出:两个数加减乘除后的结果*问题分析原创 2014-09-11 15:01:31 · 2433 阅读 · 0 评论 -
小小的通讯录
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9月13日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:现一个小型通讯录。定义Friend类,编写它具有的属性:姓名(n原创 2014-09-13 09:16:29 · 845 阅读 · 0 评论 -
用构造函数计算不同立方体的体积
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9月13日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:编写一个程序,得出3个不同盒子的体积,将每个盒子的高度、宽度和长原创 2014-09-13 10:22:26 · 1799 阅读 · 0 评论 -
输出学生信息(在Friend类中定义输出和输入)
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9月13日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:编写Student类,编写它的属性:姓名name、学号stuNo原创 2014-09-13 10:04:25 · 1017 阅读 · 0 评论 -
显示订购水果的信息
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9月13日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:编写一个程序,显示水果的订购详情。定义一个带有参数的构造方法,这原创 2014-09-13 11:15:07 · 1504 阅读 · 0 评论 -
书籍信息
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9月13日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述: 设计一个图书类Book,该Book类具有属性:书籍编号(boo原创 2014-09-14 11:26:51 · 752 阅读 · 0 评论 -
java实现两个数的加减乘除和平方运算
import java.util.Scanner;public class liujian { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub A num; num=new A(); Scanner i原创 2014-09-02 17:28:05 · 10378 阅读 · 0 评论 -
用JAVA编猜系统随机数的程序
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9月16日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:猜出系统随机产生的数*程序输入:*程序输出:*问题分原创 2014-09-16 17:01:17 · 1742 阅读 · 0 评论 -
书籍的信息由键盘输入
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9月16日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述: 设计一个图书类Book,该Book类具有属性:书籍编号(boo原创 2014-09-16 18:36:40 · 900 阅读 · 0 评论 -
书籍信息(在主类里面直接输入书籍的信息)
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9月16日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述: 设计一个图书类Book,该Book类具有属性:书籍编号(boo原创 2014-09-16 20:18:11 · 1082 阅读 · 0 评论 -
在主类中调用多个类
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年9月17日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:设计一个Person类,Person类具有属性:身份证号(idC原创 2014-09-17 17:11:29 · 1143 阅读 · 0 评论 -
JAVA支持---出栈后的元素
import java.util.ArrayList;public class ArrayListTest { public static void main(String[] args) { ArrayList list =new ArrayList(); list.add("A"); list.add("B"); list.add("C"); li原创 2014-10-23 11:04:47 · 757 阅读 · 0 评论 -
初级银行存款
import java.util.Scanner;public class Bank { protected int savedMoney; protected int year; protected double income; protected double inRate; protected int getSavedMoney() { return sav原创 2014-10-23 11:02:02 · 864 阅读 · 0 评论 -
JAVA支持
import java.util.HashMap;public class HashMapTest { public static void main(String[] args) { HashMap map = new HashMap(); map.put(1,"A"); map.put(2,"B"); map.put(3,"C"); map.put原创 2014-10-23 11:01:10 · 660 阅读 · 0 评论 -
JAVA模拟银行存钱,取钱操作以及计算利息操作
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年11月11日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:具体要求: 建立Bank类为抽象类。方法:原创 2014-11-11 17:06:51 · 6976 阅读 · 0 评论 -
JAVA 接口的应用
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年11月6日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:*程序输入:*程序输出:*问题分析:*算法设计:原创 2014-11-06 19:04:46 · 722 阅读 · 0 评论 -
JAVA初级窗口
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年12月3日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:*程序输入:*程序输出:*问题分析:*算法设计:原创 2014-12-03 21:29:54 · 690 阅读 · 0 评论 -
单例设计模式
/* 单例设计模式:解决一个类在内存中只有一个对象。 想要保证对象唯一: 1、为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象。 2、还为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象。 3、为了方便其他程序对自定义对象的访问,可以提供一些访问方式。 这三部怎么用代码的方式体现? 1、强构造函数私有化。 2、在类中创建一个本类对象。 3、提供一个方原创 2015-11-07 18:02:19 · 379 阅读 · 0 评论 -
单例设计模式二---懒汉式
//对象是方法被调用时才初始化,也叫作对象的延迟加载,称为:懒汉式。//Single类进内存,对象还没有存在,只有调用了getInstance()方法才建立对象。class Single2{ private int num; public void setNum(int num){ this.num=num; } public int getNum(){ return num;原创 2015-11-07 18:16:52 · 334 阅读 · 0 评论 -
子父类出现后,类成员的特点(变量 、函数)
/* 子父类出现后,类成员的特点: 类中成员: 1、变量 2、函数 3、构造函数 1、变量: 如果子父类中出现非私有的同名成员变量时,子类要访问本类中的变量用this 子类要访问父类中的同名变量用super super的使用和this的使用几乎一致 this代表的是本类对象的引用 super代表的是父类对象的引用。 2、函数 当子类出现和父类一样的函数时原创 2015-11-08 10:45:38 · 518 阅读 · 0 评论 -
子父类中构造函数的特点
/* 子父类中的构造函数: 在对子类对象进行初始化时,父类的构造函数也会运行, 那是因为子类的构造函数默认第一行有一条隐式的语句 super(); super():会访问父类中空参数的构造函数,而且子类中所有的构造函数默认第一行都是super(); 为什么子类一定要访问父类中的构造函数? 因为父类中的数据子类可以直接获取,所以子类对象在建立时,需要先查看父类如何对这些数据初始化原创 2015-11-08 11:19:58 · 332 阅读 · 0 评论 -
JAVA中的Final关键字的使用
/* final:最终,作为一个修饰符 1、可以修饰类 函数 变量 2、被final修饰的类不可以被继承。为了避免被继承,被子类复写。 3、被final修饰的方法不可以被复写。 4、被final修饰的变量时一个常量,只能被赋值一次,既可以修饰成员变量,又可以修饰局部变量. 当在描述事物时,一些数据的出现时固定的,那么这时为了增强阅读性,都给这些值起个名,方便于阅读。原创 2015-11-08 11:40:08 · 329 阅读 · 0 评论 -
接口基础
/* 接口:初期理解,可以认为是一个特殊的抽象类 当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示 class用于定义类 interface 用于定义接口 接口定义时,格式特点: 1、接口中常见定义:常量,抽象方法。 2、接口中的成员都有固定修饰符。 常量:public static final 方法:public abstract 注原创 2015-11-08 16:35:48 · 380 阅读 · 0 评论 -
静态修饰符和主函数
/* 静态:static。 用法:是一个修饰符,用于修饰成员(成员变量,成员函数)。 当成员被静态修饰后,就多了一个调用方式,除了可以被 对象调用外,还可以直接被类名调用 类名.静态成员。 static特点: 1、随着类的加载而加载。 2、优先于对象存在。 3、被所有对象共享。 4、可以直接被类名调用。 实例变量和类变量的区别: 1、 存放位置 类变量随着类的原创 2015-11-08 09:54:22 · 409 阅读 · 0 评论 -
面向对象(模板设计模式)
/* 需求:获取一段程序运行的时间 原理:获取程序开始和结束时的时间然后相减 方法:System.currentTimeMillis() 模板方法设计模式: 在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分 那么这时就将不确定的部分暴露出来,由该类的子类完成。 */abstract class GetTime{ public f原创 2015-11-08 15:37:33 · 668 阅读 · 0 评论 -
类Object中的equals()方法
/* object:是所有对象的直接或间接父类, 该类中定义的肯定滴所有对象都具备的功能 object类中已经提供了对象是否相同的比较方法,没有必要重新定义。 只要沿袭父类中的功能,建立自己特有的内容即可,这就是覆盖。 */class Demo1{ private int num; Demo1(int num){ this.num=num; } public boolea原创 2015-11-09 08:28:06 · 585 阅读 · 0 评论 -
内部类(访问规则和静态内部类)
/* 内部类的访问规则: 1、内部类可以直接访问外部类的成员,包括私有。 之所以可以直接访问外部类中的成员,是因为内部类中持有了外部类中的一个引用 格式:外部类名.this 2、外部类要访问内部类必须要建立内部类对象。 访问格式:1、 当内部类定义在外部类的成员位置上,而且非私有,可以在外部类其他类中直接建立内部类对象。 格式: 外部类名.内部类名 变量原创 2015-11-09 09:07:29 · 673 阅读 · 0 评论 -
异常小总结
异常:是对问题的描述,将问题进行对象的封装。----------------------异常体系: Throwable |--Error |--Exception |--RuntimeException------------------------------------------异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性。原创 2015-11-10 21:38:09 · 459 阅读 · 0 评论 -
自定义异常计算面积的小程序
/* 有一个圆形和长方形 都可以获取面积,对于面积如果出现非法值,视为是获取面积出现问题。 问题通过异常来表示。 现有对这个程序进行基本设计。 *///自定义异常class NoValueException extends RuntimeException{ NoValueException(String message){ super(message); }}int原创 2015-11-10 20:53:09 · 933 阅读 · 0 评论 -
创建两个进程和主线程交替进行
class Test extends Thread{ private String name; Test(String name){ this.name=name; } public void run(){ for(int x=0;x<10;x++) System.out.println(name+"run........."+x); }}public class Th原创 2015-11-13 12:46:44 · 1179 阅读 · 0 评论 -
线程(售票小程序)
第一种方法:继承Thread类/* 问题描述: 简单的卖票程序,多窗口卖票。 *///继承Thread类,复写run方法class Ticket extends Thread{ private static int ticket=30; Ticket(String name) { super(name); } public void run() { while(原创 2015-11-13 14:29:24 · 818 阅读 · 0 评论 -
线程间通讯------示例代码
/* 线程间通讯: 其实就是多个线程在操作同一个资源, 但是操作的动作不同 */class Res{ String name; String sex;}class Input implements Runnable{ private Res r; Input(Res r) { this.r=r; } public void run() { int x=0;原创 2015-11-14 16:59:49 · 262 阅读 · 0 评论 -
线程间通讯-------解决安全问题
/* 线程间通讯: 其实就是多个线程在操作同一个资源, 但是操作的动作不同 */class Res2{ String name; String sex;}class Input2 implements Runnable{ private Res2 r; Input2(Res2 r) { this.r=r; } public void run() { int原创 2015-11-14 17:02:47 · 355 阅读 · 0 评论 -
同步代码块
/* synchronized(对象) { 需要被同步的代码 } 对象如同锁,持有锁的线程可以在同步中执行。 没有持有锁的线程即使获取CPU执行权,也进不去,因为没有获得锁。 同步的前提: 1、必须要有两个或者以上的线程。 2、必须是多个线程使用同一个锁。 必须保证同步中只能有一个线程在运行。 好处:解决了多线程的安全问题 弊端:多个线程需要判断锁,较为原创 2015-11-14 13:10:13 · 406 阅读 · 0 评论 -
同步代码块和同步函数
/* 函数需要被对象调用,那么函数都有一个所属对象引用,就是this。 所以同步函数使用的锁是this。 */class Ticket4 implements Runnable{ boolean flag=true; private int ticket =100; Object obj=new Object(); public void run() { if(fla原创 2015-11-14 13:12:25 · 777 阅读 · 0 评论 -
线程间通讯------等待唤醒机制(代码优化)
/* 线程间通讯: 其实就是多个线程在操作同一个资源, 但是操作的动作不同 */class Res2{ private String name; private String sex; private boolean flag=false; public synchronized void set(String name, String sex) { if(this.fl原创 2015-11-14 19:35:56 · 342 阅读 · 0 评论 -
线程间通讯-------等待唤醒机制
/* 线程间通讯: 其实就是多个线程在操作同一个资源, 但是操作的动作不同 */class Res2{ String name; String sex; boolean flag=false;}class Input2 implements Runnable{ private Res2 r; Input2(Res2 r) { this.r=r; } publi原创 2015-11-14 17:27:18 · 407 阅读 · 0 评论