Java
文章平均质量分 56
OliverZang
这个作者很懒,什么都没留下…
展开
-
Java基础知识代码篇
变量类型转换,个位数char与int类型的变量如何转换?思路:直接char赋值int,会将char对应编码的十进制值(‘1’=49,‘0’=48)赋给int变量,故减去’0’编码所代表的十进制数即可。答:int intA = char charA - ‘0’;2.如何利用StringBuffer类来逆转字符串"1234&原创 2018-10-25 16:45:03 · 214 阅读 · 0 评论 -
Java: 排序 - 选择排序
选择排序对于n个数的数组,需要n-1次遍历,时间复杂度n2,空间复杂度1。n个数的数组,升序选择排序过程如下:第一次遍历,假设映射数组最小值的下标minIndex为下标0,从下标1到下标n-1作为排序队列,轮流与下标min比较映射值,每当min的映射值大于对方,则min的下标被对方下标覆盖。最后min下标的值与下标0互换,保证下标0映射当前排序队列的最小值。…第m次遍历(m<n-1...原创 2018-12-07 23:36:27 · 132 阅读 · 0 评论 -
Java:windows shell 下package和import的问题:类放在同一包下为什么显示cant find symbol?
使用cmd或者powershell运行java注意事项不使用IDE时,我们编写多个java文件后想要编译并测试运行的话,需要注意一些问题对于运行入口的App.java或者测试XXTest.java而言,需要cmd在module loader(根package目录)的上一级目录下运行比如你要写一个软件,myapp,创建了根目录myapp,编写的所有类文件都在myapp内软件入口App.jav...原创 2018-12-05 15:15:51 · 1451 阅读 · 0 评论 -
Java:LinkedList 操作练习
LinkedList和ArrayList相比,从遍历速度上看:使用index非常慢,应该避免使用Iterator速度快,但仍不及ArrayList一半速度。LinkedList删除,插入速度较快,如果去重,使用LinkedHashSet来包证原数据的顺序性。import java.util.*;import java.util.regex.*;/* * This class is ...原创 2018-12-03 15:58:27 · 296 阅读 · 0 评论 -
Java: 8/9/10/11 新特性
根据开源中国9月份的投票,https://www.oschina.net/question/2918182_2287320Java 8 是投票者最多使用的版本,其次是7,也有一部分开发人员表示跳过9与10尝试Java 11本文记录一下8/9/11中的最主要的新特性以备后察java 8 新特性 - 当前主流版本,商用更新到20198引入了新的语言特性lambda表达式,用函数式编程,简化语句...原创 2018-12-05 18:04:14 · 1254 阅读 · 0 评论 -
Java:类文件程序执行顺序
只要按照这个步骤,遇到这一类问题就可以解决了。1.类中所有属性的默认值(一举而成)2. 父类静态属性初始化,静态块,静态方法的声明(按出现顺序执行)3. 子类静态属性初始化,静态块,静态方法的声明 (按出现顺序执行)4. 调用父类的构造方法,首先父类的非静态成员初始化,构造块,普通方法的声明(按出现顺序执行)然后父类构造方法5. 调用子类的构造方法,首先子类的非静态成员初始化,...转载 2018-12-12 16:04:44 · 293 阅读 · 0 评论 -
Java:HashMap操作练习
HashMap是HashTable的兄弟,继承AbstractMap,实现Cloneable/Serializable接口。AbstractMap又是Map的实现。HashMap是通过计算存储对象的哈希值,以键值Entry数组来散列存储对象。如果存储遇到哈希碰撞,新建一个Node类,以旧键值对为头部,从尾部插入新键值对。如果链表的长度大于8,则该链表转换成红黑树存储碰撞键值对。(JDK 1....原创 2018-12-06 23:08:12 · 1036 阅读 · 0 评论 -
Java:HashSet操作练习
HashSet继承AbstractSet类, 实现Set,Cloneable,Serializable接口。初始化HashSet等于初始化一个内部成员HashMap map,默认容量16,负载因子0.75操作HashSet的元素等于用元素作为HashMap的key操作mapiterator()==map.keySet().iterator()add(E) ==map.put(E,Final...原创 2018-12-07 15:40:04 · 345 阅读 · 0 评论 -
Java:hashcode和equals
前言:使用HashMap,HashSet等带有Hash或者Set字眼的的API时,如果存放自定义实例类,必须重写其hashcode()和equals()方法。这是为什么?我们学习HashMap和HashSet时,知道有着"去重"的特性,想当然的认为在里面存放对象都能保证唯一性。实际上此类API操作对象的存与取时,总是需要使用hashcode()和equals()1. 什么是hashcode呢...原创 2018-12-15 11:36:26 · 193 阅读 · 0 评论 -
Java:算法 - 手动实现双向链表中的增插删改
1. 前言:先来复习下链表的概念:物理结构计算机的物理存储结构有两种:{顺序,链式} 物理存储结构 定义 存取速率 插入删除速率(给定地址) 插入删除速率(给定值) 空间占用 空间利用率 链式 数据存储在地址随机的物理存储单元 低 高 中 高 高 顺序 数据存储在地址连续的物理存储单元 高 中 ...原创 2018-12-20 18:22:06 · 277 阅读 · 0 评论 -
Java:最简单的几行代码让栈内存溢出 StackOverflowError
public class Test1 { {new Test1();} public static void main(String[] args) { new Test1(); }}原创 2018-12-20 23:47:50 · 575 阅读 · 0 评论 -
Java:排序 - 冒泡
对于n个数的数组升序排序,最多遍历n-1次,第一次遍历下标0到n-2,将每次访问的下标m和m+1的值比较,m大则双方互换位置,即下标n-1确认是最大值。第m次遍历下标0到n-m,直到每次不发生交换,则缺认排序完成对于n个数的数组降序排序,…,m小则互换位置,…直到不发生交换,完成冒泡排序法,时间复杂度为n2,空间复杂度为1,排序后相同元素位置不变,属于稳定排序。 public static...原创 2018-12-07 18:25:18 · 217 阅读 · 0 评论 -
Java: ArrayList 的操作练习
/* * This class is mean to practise data manipulation of ArrayList * * ArrayList has high performance for random access * Other than that, it is pretty slow */import java.util.*;import java...原创 2018-12-01 22:44:40 · 169 阅读 · 0 评论 -
Java debug经验记录
Cant find symbol基本是没有分配对象就直接调用了动态方法not a statement恭喜你,该看工具书或查java doc咯non-static method cannt be referenced from a static context在静态方法里调用了动态方法,实际是动态方法需要对象...原创 2018-11-01 12:59:22 · 374 阅读 · 0 评论 -
Java复习笔记 基础理论篇
1. Java是解释性的语言吗?答: java程序的源代码是解释性的,但.java文件要通过2个步骤才能变成机器语言:1)在java平台上被编译成字节码(bytecode)的.class形式,这是二进制的JVM的机器语言。2)JVM附带解释器,对这些字节码解释执行。PS:Java的.class文件可以在任何平台上JVM运行!反之,离开了JVM的环境,.class的二进制字节码无法适用于任...原创 2018-10-25 16:18:43 · 283 阅读 · 0 评论 -
Java:类型转换问题整理...
Java中类型转换是经常遇到的问题,这里用来更新和总结类型转换的方法和问题,以便日后回顾:Java里基本数据类型有哪几种?分别占多大内存?在64位JVM里呢?思路:8大基本数据类型,占位长固定与系统无关。答:8种,按长度大小依次是:byte = 8 bit ; boolean = 8 bit;short = 16 bit; char = 16 bit;int = 32 bit ...原创 2018-10-31 20:41:52 · 263 阅读 · 0 评论 -
优先级PK:Java中的4种代码块,谁先谁后?
问题:Java里的四种代码块,像积木一般搭成代码塔。那么一段复杂的代码在JVM里每一句的执行顺序是如何的呢?思路:看代码块的优先级顺序——>被调用的顺序答:要回答这个问题,我们先来看看四种代码块是哪些:有了定义,还是要具体例子的:public class HelloWrold { public static void main(String[] args) { ...原创 2018-10-29 13:25:43 · 344 阅读 · 0 评论 -
Java: Array 的操作练习
/** * This Class is created to practise creating and accessing Java arrays * * @author Oliver Zang ***/import java.util.*;public class PracArray{public PracArray(){ System.out.println("ye...原创 2018-11-16 23:08:07 · 202 阅读 · 0 评论 -
单例模式 Singleton
面向对象的设计模式,是在特定场景下常用而有效的设计,优点在于代码有效,易读,有利于程序员复用,维护。单例模式 (Singleton)单例模式是23种GoF设计模式中的一种,主要用来解决以下问题:如何保证一个类只有一个实例?如何让访问单个实例变得简单?如何让类控制实例化如何限制一个类的实例数量?单例模式使用下列方式解决上述问题:隐藏构造器定义一个public static o...原创 2018-11-21 14:22:39 · 250 阅读 · 0 评论 -
关于String的比较问题
比较2个字符串,我们可以使用 String.compareTo 方法:compareTo() 的返回值是int, 它是先比较对应字符的大小(ASCII码顺序)1、如果字符串相等返回值02、如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值前字符串的值小于后字符串,正值前字符串大于后字符串)3、如果第一个字符和参数的第一个字符相等,则以第二个字符和参数...原创 2018-11-17 22:03:01 · 268 阅读 · 0 评论 -
工厂模式 Factory Method
工厂模式 (Factory Method)工厂模式主要用于解决以下问题:如何创建一个对象,让子对象自选用于实例化?如何让一个类的实例化推迟到子类?解决方案定义一个独立 operation (factory method) 用于创建对象调用factory method 来创建对象使用场景日志记录器:记录到本地硬盘或远程服务器,用户可以选择记录日志地点数据库访问,用户不知道...原创 2018-11-23 15:05:09 · 174 阅读 · 0 评论 -
Spring - 核心模块
1. 什么是SpringSpring 是一套开源的企业级开发框架,主要用于开发java和构建java ee平台的web应用。2. Spring框架模块有哪些?core modulebean modulecontext moduleexpression language modulejdbc moduleorm moduleoxm modulejava messaging se...原创 2018-11-29 15:38:39 · 211 阅读 · 0 评论 -
Java:多线程 - 创建方法
多线程的理解可以理解成进程中独立运行的子任务,比如QQ.exe运行时的视频聊天线程,下载文件线程,发送表情线程等,这些不同的任务或功能可以“同时”运行。实际上,CPU在这些线程之间不断的切换,这样做可以最大限度的利用CPU的空闲时间。Java多线程的创建和使用java中的main是一个独立的线程,对于多线程,我们主要使用三种方法创建和使用:继承Thread类,重写run(),实例化并使用...原创 2018-12-02 21:00:46 · 172 阅读 · 0 评论 -
Java代码优化:静态工厂方法 Static Factory Method
Effective Java中提出了静态工厂,即不使用产品的constructor来提供产品,静态工厂不是开发模式,而是一种改进提供实例的策略。如何实现?很简单,静态工厂方法的定义是:一个返回类的实例的静态方法这样做有什么好处?1)静态工厂方法签名可读性强,封装了不必要的参数,减少了使用错误。2)静态工厂方法不需要每次都new一个对象,可以取得预载或缓存对象3)静态工厂方法可以返回对象...原创 2018-12-25 22:42:50 · 377 阅读 · 0 评论