
java基础学习
文章平均质量分 67
学习javase基础
留意基础里给我们的坑
李灵晖
正走在技术道路上的求知者
展开
-
java基础入门-float四舍五入保留两位小数注意的地方
float四舍五入保留两位小数注意的地方最近在codewars做了一道非常简单的题目,但是它却花了我20来分钟,虽然最后解决了,但是中间发觉对于java的基础实在不行,回去要好好补一下不说这么多,上题目:就是写一个方法,把英里每加仑换算成公里每升,保留两位数一开始写的时候是没有问题,问题出现在保留两位数那里,我上一个测试代码import java.util.regex.Pa原创 2015-07-29 09:06:18 · 6260 阅读 · 0 评论 -
java基础入门-建立可以多客户端链接的ServerSocket
承接上一篇文章,今天谈论一下可以多客户端链接的ServerSocket。这里面注意涉及到的技术点是:1.ServerSocket2.多线程这次我们分成两个类来实现,先上代码:package com.test.socket;import java.io.IOException;import java.io.InputStream;import java.io.Ou原创 2015-07-27 17:01:24 · 1719 阅读 · 0 评论 -
java基础入门-建立简单的ServerSocket
今天说说建立小型的服务器。一般服务器都是循环执行下面几个流程:1.接收数据流从客户端接受命令2.解码3.收集需求4.通过数据流返回数据下面上源码:package com.test.socket;import java.io.IOException;import java.io.InputStream;import java.io.Ou原创 2015-07-23 12:30:36 · 1412 阅读 · 0 评论 -
java基础入门-对象流与序列化
概念对象序列化:将对象输入到流里面,并在之后将其读回。注意事项对象需要实现Serializable接口,Serializable接口没有任何方法,不需要重写由于对象可能会重复使用,对象暂用不再是原来的内存地址,因此,序列化过程中引入序列号这个东西,如下图序列化用途对象通过序列化,然后在网络中传输,不同的机器负责不同的计算部分,从而实现分布式计算,提高计算的效原创 2015-07-09 11:39:51 · 1234 阅读 · 0 评论 -
java基础入门-ZipOutputStream打包下载
今天跟大家聊聊使用ZipOutputStream打包下载,我下面是使用ant的jar打包的,因为他对应中文的支持比较好大家也可以使用java.util.zip包里面的工具类打包,但是他对于中文不友好,很多都是乱码的(包括注释、文件名、打包名)import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.Z原创 2015-07-09 10:29:54 · 6306 阅读 · 0 评论 -
数据机构与算法-数据结构的一些基本概念
百度版:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。数据结构里面的一些重要概念:1.逻辑结构与物理结构1.1逻辑结构(重点)指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的原创 2015-07-02 12:58:52 · 1764 阅读 · 0 评论 -
java基础入门-多线程同步浅析-以银行转账为例子
在说之前先普及一下线程是什么?线程:说白了就是一个任务片段进程:是一个具有独立功能的程序关于某个数据集合的一次运行活动,一个进程有一个或者多个线程线程与进程的本质区别就是有么有数据共享空间,线程之间可以共享数据,进程不可以下面进入主题:线程间的同步由于现在业务流程增加,业务节点也增加,使用业务的人员也同时增加,这个时候就不可避免的出现并发问题,多个线程同时访问操原创 2015-07-02 08:54:07 · 5003 阅读 · 0 评论 -
java基础入门-arraylist存储开销
今天我们来看一下arraylist的存储开销,因为在项目当中,我尝试了一个非常大的arraylist,然后内存爆了所以我看了下源码,原来arraylist的存储开销是比较大的,先上代码import java.util.ArrayList;public class Test { public static void main(String[] args) { Array原创 2015-06-29 17:10:58 · 1776 阅读 · 0 评论 -
java基础入门-iterator迭代器与集合下标的使用
今天说说集合的iterator迭代器与集合下标的使用先上代码import java.util.ArrayList;import java.util.Iterator;public class Test { public Test() { // 初始化List addItemToList(); } private ArrayList list = new Ar原创 2015-06-19 11:59:56 · 6501 阅读 · 2 评论 -
java基础入门-泛型(1)-为什么需要使用泛型?
为什么需要使用泛型?1.代码复用2.保证类型安全3.编程的便利下面上代码说明代码复用1)建立一个Animal的父类package com.ray.test;public class Animal { private String name="Animal"; public String getName() { return name; } pub原创 2015-06-03 11:34:28 · 2237 阅读 · 0 评论 -
java基础入门-对象的浅克隆与深克隆
这里面涉及到两个类,一个是person类,一个是测试类test首先我们说到的是浅克隆,对某个对象实施Clone时对其是一无所知的,它仅仅是简单地执行域对域的copy,如果是基本数据类型(int,float,char等)到没什么问题,基本遇上如string,Integer等不可变对象的时候也没有什么问题,但是如果遇上了date这个可变对象,或者是自己定义的可变对象,他只是简单的复制一些引原创 2015-05-07 09:31:56 · 1393 阅读 · 0 评论 -
java-基础入门-自动装箱与自动拆箱留给我们的坑
其实,java在自动装箱和自动拆箱的过程里面,留了不少的坑给我们,我们下面将以integer这个类为基础讨论一下其实这里面主要涉及的是两点1.当使用Integer x=1,这样的方式来赋值的时候,其实,编译器当那个1是String,然后需要通过valueof的方法转换过来,但是在转换的过程中,他为了优化速度,使用了我们所不知道的缓存,因为在这里会出现一些坑2.Integer类里面重写了原创 2015-05-05 08:40:38 · 1850 阅读 · 1 评论 -
java-基础入门-泛型数组列表-解决运行时动态更改数组的问题
泛型数组列表,主要是为了解决运行时动态更改数组的问题平常我们会像下面的语句一样定义一个部门里面的人员,但是在实际业务当中,这个数组的大小往往是不确定的,如果定义过大,那么会浪费空间,定义过小,又不够用, 因为为了解决运行时动态更改数组的问题,我们提出下面的解决方案。package com.ray.object;import java.util.ArrayList原创 2015-05-04 08:49:16 · 1538 阅读 · 0 评论 -
java基础入门-hashcode与equals方法
equils方法的特性:1.自反性,对于任何非空引用x,x.equils(x)返回true2.对称性,对于任何引用x,y,x.equils(y)返回true,那么y.equils(x)返回true3.传递性,原创 2015-05-03 09:25:46 · 2340 阅读 · 3 评论 -
java基础入门-父类引用子类对象(2)-抽象类
抽象类:具有抽象方法的类,需要使用abstract关键字修饰 关系图 下面上代码 package com.ray.testobject;/** * 抽象类 * * @author ray * @since 2015-05-02 * @version 1.0 * */public abstract class Perso原创 2015-05-02 21:04:18 · 2994 阅读 · 0 评论 -
java基础入门-final关键字在类、属性域、方法里面的使用
java基础入门-final关键字在类、属性域、方法里面的使用原创 2015-05-01 21:13:43 · 1774 阅读 · 0 评论 -
java基础入门-动态绑定-调用方法的过程
java-动态绑定-调用方法的过程原创 2015-05-01 08:08:55 · 1874 阅读 · 0 评论 -
java基础入门-父类引用子类对象
java基础入门先贴上代码package com.ray.object;/** * 父类引用子类对象 * * @author ray * @since 2015-04-30 * @version 1.0 * */public class Test { class Person { public void say() { System.out.println("i原创 2015-04-30 10:08:02 · 1659 阅读 · 4 评论 -
java基础入门-静态导入
java基础入门在下面的代码中,展示的是静态导入的一些方便与不便如Math类这种更方面辨认的、Calendar类这种需要写很多东西的类,可以使用静态导入,从而降低读的门槛但是对于print这个方法,基本上是不会有人这么干的了package com.ray.object;import static java.lang.Math.pow;import static java.util.Cal原创 2015-04-29 10:23:42 · 1321 阅读 · 0 评论 -
java基础入门-不用main方法,也可以打印helloworld
java基础入门package com.ray.object;/** * 不用main方法,也可以打印Hello World! * * @author ray * @since 2015-04-29 * @version 1.0 * */public class Person { static { System.out.println("Hello World!"); Syste原创 2015-04-29 10:00:34 · 3008 阅读 · 1 评论 -
java基础入门-方法参数的调用是值调用而不是引用调用
java基础入门-方法参数的调用是值调用而不是引用调用package com.ray.object;/** * 方法参数的调用是值调用,而不是引用调用 * * @author ray * @since 2015-04-22 * @version 1.0 * */public class Person { private static void swap(原创 2015-04-29 09:55:12 · 1309 阅读 · 0 评论 -
java基础入门-数据访问器(set方法)与返回可变对象
今天写一个大家平常都比较忽略的一个问题set方法与返回可变对象我们平常在编程的时候,大部分的时候都是使用get、set方法来访问或者设置属性域但是在set的方法当中会出现一些比较特殊的例子,就像下面的代码,birthday手型,在set方法里面返回的是一个可变对象date,然后我们再通过这个date去改变属性域里面的值这种错误时经常出现在代码里面,正确的做法是在birthday原创 2015-04-27 09:23:31 · 2020 阅读 · 0 评论 -
java基础入门-构造器-构造函数
java基础入门-构造器package com.ray.testobject;public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } pub原创 2015-04-25 09:32:19 · 965 阅读 · 0 评论 -
java基础入门-对象与构造方法
java基础入门package com.ray.object;/** * 对象与构造函数 * * @author ray * @since 2015-04-22 * @version 1.0 * */public class Person { public Person() { } public Person(String name) { } public static v原创 2015-04-24 10:26:06 · 1044 阅读 · 0 评论 -
java基础入门-对象与对象变量
java基础入门在上面的代码里面bill是对象,jack只是对象变量bill因为已经实例化,所以他可以打印具体的东西但是,jack没有实例化,所以如果需要打印东西,编译器直接报错原创 2015-04-24 08:24:13 · 1316 阅读 · 0 评论 -
java基础入门-预定义类与自定义类
java基础入门-预定义类与自定义类原创 2015-04-23 11:55:47 · 2943 阅读 · 1 评论 -
java基础入门-类、对象、实例的关系
关于类、对象、实例的关系我总结为下面的图class:类别,比如“人”这一类object:通过实例弄出来的一个具象的物件,比如:“bill”这个物件,属于“人”这一类instance:具象对象的过程,比如:填充“人”这个类里面的属性域,最后形成“bill”这个人的过程,重点是过程,所以平常也叫实例化但是我个人更加倾向于第二个图class,说白了就是类型,就像上面说的“人”原创 2015-04-22 08:34:42 · 1396 阅读 · 0 评论 -
java基础入门-for循环的一些特殊例子
在for循环里面使用doublepackage com.ray.testfor;/** * 在for循环里面使用double类型 * * @author JMSCADMIN * @since 2015-04-20 * */public class UseDoubleInFor { public static void main(String[] args) {原创 2015-04-20 08:24:53 · 1749 阅读 · 0 评论 -
java基础入门-还原字符串的拼接的过程
平常我们很多时候都会使用字符串的拼接,但是为什么使用“+”号就是比stringbuilder慢,而且慢很多?实验package com.ray.teststring;/** * 对比拼接字符串的两种方式 * * @author ray * @since 2015-04-19 * @version 1.0 * */public class StringJoint {原创 2015-04-19 23:54:14 · 1385 阅读 · 0 评论 -
java基础入门-你不知道的string-不可改变性与编译器优化
1.不可改变性package com.ray.teststring;/** * 不可改变性 * * @author ray * @since 2015-04-19 * @version 1.0 * */public class UnChangabel { public static void main(String[] args) { String greeti原创 2015-04-19 23:33:54 · 1494 阅读 · 0 评论 -
java基础入门-strictfp关键字-严格浮点计算
strictfp关键字-增加关键字,使得方法或者类里面使用严格浮点计算原创 2015-04-18 22:38:01 · 1562 阅读 · 0 评论