技术文章

Java的四舍五入

四舍五入是我们小学的数学问题,这个问题对于我们程序猿来说就类似于1到10的加减乘除那么简单了。在讲解之间我们先看如下一个经典的案例: public static void main(String[] args) { System.out.println("12.5的四舍五入值:" + Math.round(12.5)); System.out.println("-12.5的四舍五入值:" + Math.round(-12.5)); } Output: ...

Java反射机制

一、概述 Java反射机制就是在运行状态中,对于任意一个类,都能够知道这个类的属性和方法。对于任意一个对象能够调用它的任意一个属性和方法。这种动态获取的信息和动态调用对象的方法的功能称为Java语言的反射机制--百度百科 反射机制就是通过Class类实现的。但是总所周知在Java中,Object 类是所有类的根类,而Class类就是描述Java类的类。有点儿抽象?没关系,我们再来解释下Class到底是何物! 在Java中,每一个class都有一个相应的Class对象,在将Java源码编译成.class文件中就会生成一个Class对象,Class对象表示这个类的类型信息,你也可以理解成Class是类的类型 ...

Java内部类详解

说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲:   一.内部类基础   二.深入理解内部类   三.内部类的使用场景和好处   四.常见的与内部类相关的笔试面试题    一.内部类基础   在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。 ...

Java集合框架总结——TreeSet类的排序问题

1、自然排序 TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排序。(比较的前提:两个对象的类型相同)。 java提供了一个Comparable接口,该接口里定义了一个compareTo(Object obj)方法,该方法返回一个整数值,实现该接口的类必须实现该方法,实现了该接口的类的对象就可以比较大小。当一个对象调用该方法与另一个对象进行比较,例如obj1.comparTo(obj2),如果该方法返回0,则表明这两个对象相等;如果返回一个正整数,则表明obj1大于obj2;如果该方法返回一个负整数,则表明obj1小于obj2. ...

Java异常体系结构

一、 异常的概念和Java异常体系结构 异常是程序运行过程中出现的错误。本文主要讲授的是Java语言的异常处理。Java语言的异常处理框架, 是Java语言健壮性的一个重要体现。 Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。 在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。 Java异常体系结构呈树状,其层次结构图如图 1所示: ...

Java的8大排序的基本思想及实例解读

本文主要详解了Java语言的8大排序的基本思想以及实例解读,详细请看下文: 8种排序之间的关系: 1, 直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数 也是排好顺序的。如此反复循环,直到全部排好顺序。 (2)实例 (3)用java实现 1 package com.njue; 2 3 public class insertSort { ...

Android 程序员眼中的小程序

我就是不爱在1月9日写这篇文章,哼 话是这么说,可我还是蹭了一次热点,所以身体还是很诚实的。 众所周知,在1月9日这天,微信发布了小程序,我所在的各种群里面一片哀嚎,一群苦逼的 Android 工程师说完蛋了,App 要死了,要失业了。我这种特别不喜欢随波逐流的人,又不屑地“呵呵”了下。当然嘲讽的目标并不是小程序,而是这帮 Android 工程师。 这里面很多人爱跟着大佬讲趋势,讲行业发展,讲大方向,讲财务自由,讲来讲去发现钱包里还没有几毛钱,要明白这是不符合“阶级属性”的一个话题。并不是指讲这些不对,而是凡事的度过了,就不对了。 ...

Java核心类库——内部类那点事儿

内部类 ———定义在类的内部的类 为什么需要内部类?   典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象。所以你可以认为内部类提供了某种进入其外围类的窗口。   java中的内部类和接口加在一起,可以实现多继承。   可以使某些编码根简洁。   隐藏你不想让别人知道的操作。 使用内部类最吸引人的原因是:   每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个角度看,内部类使得多重继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”。 ...

2017最全的Java大致学习方向

一、Java SE部分 1、java基础:基础语法;面向对象(重点);集合框架(重点);常见类库API; 2、java界面编程:AWT;事件机制;Swing; 3、java高级知识:Annotation;IO和NIO、AIO;多线程、线程池;阻塞、非阻塞、异步网络通信;反射、动态代理; 二、JDBC编程 4、SQL基础:基础SQL语句;基本查询;多表查询;子查询;结果集的交、并、差运算; 5、JDBC基础:常见数据库用法;JDBC操作常见数据库;RowSet与离线结果集;数据库连接池;事务管理、批处理; ...

Java动态代理

今天一个偶然的机会我突然想看看JDK的动态代理,因为以前也知道一点,而且只是简单的想测试一下使用,使用很快里就写好了这么几个接口和类: 接口类:UserService.java 1 package com.yixi.proxy; 2 3 public interface UserService { 4 5 public int save() ; 6 7 public void update(int id); 8 9 } 实现类:UserServiceImpl.java ...

java中的String不再纠结

这两天在淘测试的文章里看到一篇关于Java string的文章,谈到了StringBuilder和StringBuffer的使用效率的问题,然后发现自己忽略了capacity这个概念。比如说下面的一段代码: 1 StringBuffer sf = new StringBuffer(""); 2 sf.append("leeon"); 3 System.out.println("length: "+sf.length()); 4 System.out.println("capacity: "+sf.capacity()); ...

java知识总结(十三)网络编程

一、TCP和UDP 1.TCP(传输控制协议)方式 TCP方式就类似于拨打电话,使用该种方式进行网络通讯时,需要建立专门的虚拟连接,然后进行可靠的数据传输,如果数据发送失败,则客户端会自动重发该数据 2. UDP(用户数据报协议)方式 UDP方式就类似于发送短信,使用这种方式进行网络通讯时,不需要建立专门的虚拟连接,传输也不是很可靠,如果发送失败则客户端无法获得 这两种传输方式都是实际的网络编程中进行使用,重要的数据一般使用TCP方式进行数据传输,而大量的非核心数据则都通过UDP方式进行传递,在一些程序中甚至结合使用这两种方式进行数据的传递。由于TCP需要建立专用的虚拟连接以及确认传输是否正确,所以使用TCP方式的速度稍微慢一些,而且传输时产生的数据量要比UDP稍微大一些。 ...

Java单例模式深入详解

一.问题引入   偶然想想到的如果把Java的构造方法弄成private,那里面的成员属性是不是只有通过static来访问呢;如果构造方法是private的话,那么有什么好处呢;如果构造方法是private的话,会不更好的封装该内呢?我主要是应用在使用普通类模拟枚举类型里,后来发现这就是传说中的单例模式。构造函数弄成private 就是单例模式,即不想让别人用new 方法来创建多个对象,可以在类里面先生成一个对象,然后写一个public static方法把这个对象return出去。(eg:public 类名 getInstancd(){return 你刚刚生成的那个类对象;}),用static是因为你的构造函数是私有的,不能产生对象,所以只能用类名调用,所有只能是静态函数。成员变量也可以写getter/setter供外界访问的。 ...

Java 反射机制分析指南

一、JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,Java和C++一样,都不是动态语言。 但JAVA它却有着一个非常突出的动态相关机制:反射。通过反射,Java可以于运行时加载、探知和使用编译期间完全求和的类、生成其对象实体,调用其方法或者对属性设值。所以Java算是一个半动态的语言吧。 反射的概念: 在Java中的反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意一个方法; ...

Java核心技术点之多线程

为什么使用多线程 并发与并行 我们知道,在单核机器上,“多进程”并不是真正的多个进程在同时执行,而是通过CPU时间分片,操作系统快速在进程间切换而模拟出来的多进程。我们通常把这种情况成为并发,也就是多个进程的运行行为是“一并发生”的,但不是同时执行的,因为CPU核数的限制(PC和通用寄存器只有一套,严格来说在同一时刻只能存在一个进程的上下文)。 现在,我们使用的计算机基本上都搭载了多核CPU,这时,我们能真正的实现多个进程并行执行,这种情况叫做并行,因为多个进程是真正“一并执行”的(具体多少个进程可以并行执行取决于CPU核数)。综合以上,我们知道,并发是一个比并行更加宽泛的概念。也就是说,在单核情况下,并发只是并发;而在多核的情况下,并发就变为了并行。下文中我们将统一用并发来指代这一概念。 ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程