
java基础学习
文章平均质量分 74
你家宝宝
自2018年接触到Java,至今。
展开
-
Java21来了,赶紧用起来(附代码使用示例)
Java21 自发布日起,将会长期支持 8 年。(长期维护更新,修复bug)相当于当年的 java8 ,预计会很受 java 程序员的喜欢。原创 2023-09-27 16:36:44 · 3360 阅读 · 0 评论 -
深入理解Java中的synchronized
Java 中有这样一个关键字,它挑起了Java锁的半边天。甚至于在一些Java面试中,也会经常被提出来讨论。它就是synchronized,今天我们就一起来看看它在Java锁中起到了什么样的作用把!原创 2023-06-23 15:46:19 · 735 阅读 · 0 评论 -
Java程序员常用网站(推荐)
Java程序员常用网站,下载的软件、IDEA插件推荐原创 2023-02-21 15:06:47 · 91965 阅读 · 0 评论 -
ThreadLocal原理、内存泄漏的验证
本文主要探讨ThreadLocal的原理以及内存泄漏的规避。Java 在多线程中,想要隔离数据,比如数据库对应的连接对象,在多次请求中,如何保证线程安全,并能保证事务的提交、回滚,我们可以使用ThreadLocal原创 2023-02-08 23:30:05 · 486 阅读 · 1 评论 -
Java函数式编程为对象分组(按某几个属性)
文章目录写在最前面代码实现使用案例使用示例控制台输出结果写在最前面本文的目的,是对一个数据列表,按照其中的某些属性,进行分组。代码实现package com.example;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.function.Function;import java.util.stream.Collectors;/** * 将数据按照指定策略分原创 2022-03-05 10:47:29 · 693 阅读 · 0 评论 -
Java NIO 练习之简易聊天室
文章目录前言环境介绍练习内容1、结果展示2、主要Java 文件和配置2.1 目录结构2.2 pom.xml2.3 log4j.properties2.4 服务端类 ChatRoomServer2.5 客户端类 ChatRoomClient2.6 服务端启动2.7 客户端启动前言本次练习重在学习使用 Java NIO 中的 Selector、Buffer、Channel等关键部分。环境介绍Java 8 及其以上环境创建一个maven项目使用lombok + log4j练习内容1、结果展示原创 2021-12-20 19:11:20 · 605 阅读 · 0 评论 -
JavaBean转换为Map的几种方式
文章目录前言1、写法12、写法23、写法3测试前言很多公司代码都会有一大堆工具类。常用的String工具类,日期工具类,对象工具类等。在对象工具类中,有一种场景会经常使用,是将一个普通的java bean 转换为Map。这里来看看几种写法。1、写法1使用 apache 的 commons 工具类中的 BeanUtils:org.apache.commons.beanutils.BeanUtils.describe(Object bean);2、写法2使用 Hutool 中的 BeanUti原创 2021-12-01 11:46:07 · 7964 阅读 · 0 评论 -
抽象类与接口的比较
引言 这篇博客,是用来说明抽象类和接口的。但是本人有强迫症,索性就把抽象类的演化过程来捋一遍。首先介绍的是继java特性封装之后的“继承”、“多态的表现”,然后再逐步演化到抽象类和接口,最后再把抽象类和接口放在一起做个比较。这样可以复习好多基础,有莫有?有的话,记得点赞哟~继承继承的概述 继承是将某一类事物所共有的部分抽象出来,并且实现多次使用的过程.该过程让某2类...原创 2018-03-03 20:08:33 · 405 阅读 · 0 评论 -
java 如何写文档注释
本文翻译自How to Write Doc Comments for the Javadoc Tool,但是精简了一些私以为不重要的东西本文不讨论如何使用javadoc工具自动生成文档的方法,而是主要探讨应该如何去写文档注释业余时间整理,难免有遗漏或错误,如有发现欢迎指正转载请注明 文档注释概览“文档注释”(Java Doc Comments)是专门为了用javadoc工具自动生成文档而写的注释,...转载 2018-02-20 15:27:36 · 355 阅读 · 0 评论 -
构造方法
构造方法 首先,提一下类和对象的概念,因为下边解释的时候,会有用到!类和对象 类(class)是构造对象的模板,或者说是一件图纸! 由类构造( construct)对象的过程被称为创建类的实例。 更加通俗的一种理解就是: 类是对现实生活中事物的描述,对象就是这类事物,实实在在的个体。 那么在java这两个,描述就是c...原创 2018-02-28 16:12:11 · 578 阅读 · 0 评论 -
封装的基本概念
封装的概念基本概念: 封装是面向对象的方法应该遵循的一个重要原则!它的英文是encapsulation,有时也叫做数据隐藏。 从形式上看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现形式。 对象中的数据称为实例域(instance field),操纵数据的过程叫做方法(method)对于每个特定的类实例(也就是对象),都有一组特定的实例域值。这...原创 2018-02-27 22:54:17 · 5602 阅读 · 1 评论 -
java面试常见问题
一、JAVA基础篇-概念1.简述你所知道的Linux:Linux起源于1991年,1995年流行起来的免费操作系统,目前, Linux是主流的服务器操作系统, 广泛应用于互联网、云计算、智能手机(Android)等领域。由于Java主要用于服务器端的开发,因此Java应用的部署环境有很多为Linux。 Windows操作系统的目录结构,是以盘符为单位,C盘、D盘、E盘等等,数据存储在各个盘符之下,...转载 2018-06-24 20:34:46 · 226 阅读 · 0 评论 -
Eclipse中快捷键组合
Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个转载 2018-02-06 15:55:09 · 273 阅读 · 0 评论 -
交换两个int类型数的值的3种方法
分析: 对于交换2个int类型的数的值,这里介绍3种方法! 其一是:定义第三方变量。 private static final void method1(int num1,int num2) { int temp = 0 ; temp = num1;//把num1的值赋给temp。 num1 = num2;//用nu...原创 2018-02-25 20:47:02 · 1480 阅读 · 0 评论 -
数组的常见排序操作
数组排序操作最大值最小值的示例 首先来普及一下最大值最小值的获取的方法! 思想: 要进行比较! 1、获取最值需要比较,每一次比较都会有一个较大的值。因此该值不确定,通过一个变量进行临时存储。 2、让数组中的每一个元素都和这个元素进行比较。如果大于了变量中的值,就用该变量记录较大值。 3、当所有的元素都比较完成,那么该变量中...原创 2018-02-25 21:55:49 · 369 阅读 · 0 评论 -
java学习历程
相信每一个学习java的朋友,都想知道真正的java高手该掌握哪些知识,都盼望着能早日跨入java高手的行列,那么从新手到高手java学习者会经历哪些阶段,java学到什么程度才算是高手,该学哪些内容,我结合网上搜索的信息及个人切身体会,总结如下一:入门阶段 学习目标:Java程序员 1: 熟悉jdk,jvm,eclipse,安装于配置jdk 2:熟悉并掌握java的基础语法...转载 2018-03-14 13:02:04 · 442 阅读 · 0 评论 -
java IO之File类
java中的File类 IO先说说它的存在是为了什么吧!在文件操作之前的时候,我们的代码以及一些数据都是在内存中的,当本次程序运行结束后,一切就又和运行之前的样子(数据不变)是一样的了。这是数据的持久化问题,那么文件是干了什么呢?文件它将程序运行后的数据保存在本地磁盘上,这时数据就已经真正的发生了变化。也就是说,文件操作是帮助我们将一次程序执行过程中或结束后的数据保存下来。这样下次程序启动...原创 2018-11-07 17:41:24 · 303 阅读 · 0 评论 -
java数据类型(附简易思维导图)
原创 2018-12-09 13:33:53 · 981 阅读 · 0 评论 -
java 遍历集合(含jdk8的遍历)
1、遍历Listpackage org.feng.collect;import java.util.Iterator;import java.util.List;/** * 遍历List,子类为ArrayList时,基本上就8种 * @author Feng * 2019年8月3日上午8:23:43 */public class ListDemo { /** *...原创 2019-08-03 13:24:45 · 2253 阅读 · 0 评论 -
java SE 平台体系和运行原理
首先,以一个新学习java的角度来看:平台体系(三大分支) Java平台有三个版本,也就是三个体系了,或者说是三个分支。其中java SE(或者叫做J2SE),全称是java Platform,Standard Edition,也就是java平台标准版。它主要应用在桌面,服务器,嵌入式软件开发,java web以及实时环境下的开发。 可以这样来说明它的重要性,所有要学习java原创 2018-01-11 22:19:54 · 1298 阅读 · 1 评论 -
封装的简单例子
面向对象三大特征之简介封装举个例子引入package com.u1.day0130;/** * 封装的演示。 * * @author Feng 2018年1月30日下午2:37:59 */public class Demo02 { /** * 用人的属性作为成员变量。 */ public String name;// 名字原创 2018-01-30 15:40:05 · 3754 阅读 · 2 评论 -
比较ArrayList两种扩容方式
ArrayList容量问题 1.普通方式:按照1.5倍扩增(多次)。 2.ensureCapacity一次性扩增。首先有一个计算时间的抽象类package com.u1.arraylist;/** * 计算一个程序的运行时间 */public abstract class GetTime { /** * 可以让一个子类去继承这个GetTime原创 2018-02-05 13:41:49 · 753 阅读 · 0 评论 -
ArrayList的学生管理
一个学生类 学生的属性有:学生学号,姓名,高数成绩,计算机成绩(java成绩),专业,性别。package com.stu.test;/** * * @author Feng 2018年1月27日上午10:21:49 */public class Student { private String studentNumber;// 学生学号 priva原创 2018-02-05 11:17:22 · 1051 阅读 · 0 评论 -
java SE Math 实用类的基本用法
多余话就不说了,都在注释里了。package math;/** * 对Math 类库中的方法进行简单应用。 随机数,比较大小等。 * 这里面是常用的一些静态方法 * @author Feng 2018年1月23日下午2:15:17 * */public class Math01 { public static void main(String[] args) {原创 2018-01-23 16:44:32 · 462 阅读 · 0 评论 -
java SE 抽象类和自定义异常
Return ,continue ,break的区别首先来说,break是结束循环,跳出循环体。Continue是跳出本次循环,也就是说还会在循环体中,只是结束了这一次的循环,如果不是最后一次循环,则会继续下去(只结束一次循环,之后就继续循环)。Return则是返回一个方法,就是说,这一个方法从什么地方被调用,就返回到什么地方。 StringString 是一个特殊的类。原创 2018-01-22 10:49:32 · 562 阅读 · 0 评论 -
java SE 变量和数据类型
上一节简单的介绍了JAVA的一些基础知识,现在来看看它程序运行的开始本节的关键字是:变量,标识符,关键字,数据类型 与其他计算机语言类似,java语言也是从主方法开始的,就是从main方法开始执行的。 Java中也有变量和常量之分,想要在程序中声明一个存放整数类型的变量可以使用的程序语句是 int num;//num是这个变量的名称,int是变量的类型变原创 2018-01-13 15:12:21 · 337 阅读 · 0 评论 -
java SE 文档注释的简单使用
对文档注释的使用首先,这里是想要生成一个类的帮助文档,在包资源管理器中选选中这个类,鼠标右键点击,找到导出,点击。选择java文件夹下的javadoc,然后下一步。接下来的这一步是找你需要保存的位置,由于我之前导出过,所以上边是提示有,但是可以覆盖,所以这时点击“完成”。控制台会提示已经生成完毕。接下来就是查看这个DOC文件到底是什么样的原创 2018-01-22 16:51:41 · 552 阅读 · 0 评论 -
在Eclipse里自动导入相应包的类名的快捷键
在Eclipse里,写一个没有导入相应包的类名(这个类名已经完全写全,比如LayoutManager), 可以用ctrl+shift+M/Ctrl+Shift+o/Ctrl+1导入相应的包. MyEclipse 快捷键1(CTRL) ------------------------------------- Ctrl+1 快速修复 Ctrl+D: 删除当前行 Ctr转载 2018-01-22 10:23:30 · 1855 阅读 · 0 评论 -
java SE 语句和运算符
本节关键字:运算符、选择与循环语句Java中的语句,最常见的就是操作数和运算符组成的表达式了。运算符赋值运算符:=意思是把等号右边的所有东西都赋值给左边。例如: S= a*b+c;//意思是把(a*b+c)这个整体都赋值给S。一元运算符:+(正号)、-(负号)、!(非,NOT,一般表示否定)一般的运算中会有不止一个的操作数,也原创 2018-01-13 15:54:55 · 396 阅读 · 0 评论 -
java SE 数组及简单应用
本节关键字:数组,增删改查,数组排序为什么要用数组?为了定义多个相同数据类型的变量。数组:相同数据类型的一组数据数组有两种命名方式:Int [] arr 和int arr []数组的下标是从0开始的,数组的长度是length,所以最大下标是数组的长度减去1,也就是length-1。 分配内存给数组:数组名 =new 数据类型[长度]; 数组的声明(方式1)原创 2018-01-13 18:40:50 · 317 阅读 · 0 评论 -
java SE 泛型和包装类
本节关键词:泛型的定义 包装类一般地,泛型是比较多的用在集合和反射机制中的。 泛型:可以解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某的方法的返回值以及参数类型。这样在声明或实例化的时候只需要指定所需要的类型即可。泛型:参数化类型泛型的好处:1、将运行时的异常classCastException转换到了编译时,方便程序员解决问题。让运原创 2018-01-22 10:59:23 · 715 阅读 · 0 评论 -
java SE DVD简易管理系统及简单优化
前期学习中,java 的语法和C语言还是有很多相似的地方,在写这个DVD管理系统的时候,就想起了当时用C语言有写过(那时候,基本都是从网上荡来几篇功能基本实现的代码。就图个通关。),现在自己重新拿起这东西,还是蛮怀旧的。首先,来说说这DVD管理系统的基本要求。底层是用数组实现的,在初始化的时候,声明数组,然后给数组静态赋值。接下来就是对它的增删改查操作了,完事之后,加上个界面,在面向对象的时候原创 2018-01-23 12:10:57 · 655 阅读 · 0 评论 -
java SE 类和面向对象
本节关键词:类,对象,面向对象面向对象 将客观世界中的事物描述为对象,通过抽象思维方法将需要解决的实际问题分解成人们易于理解的对象模型,然后通过对象模型构建应用程序的功能。(针对用户提出的要求进行分析,并将分析的结果拼接成完整的个体,然后在把这个个体分块完成,最后把所有完成的小个体整合在一起。)人是怎么想的,让计算机按照人的想法去实现。类 具有相同属性和行为原创 2018-01-15 08:32:30 · 395 阅读 · 0 评论 -
java SE 集合与数组比较、常见集合的特点
集合框架为什么需要集合框架?保存一组对象,类集是一个动态的对象数组。提供用于管理对象集合的接口和类。包含接口,实现类和算法。在java中的一些特殊的类,内部可以存放多个其它数据类型的对象,把这些类叫做集合框架类。集合框架是变长的(动态)。集合默认存储的是object类型的对象,而且还提供了优秀的算法。集合框架的特点:1、这种框架是高性能的,对基本类集(动态数组,链接表,树和...原创 2018-01-22 10:57:03 · 627 阅读 · 2 评论 -
简易的动物园管理系统
动物园管理 有猫,鸭子,鱼等动物,他们有一个共同的父类–Animal,共同的属性是动物的名字,父类中有一个抽象方法。 2个接口,一个是获得腿的条数,一个是Swim。 一个管理类,用来进行增删改查操作。 一个测试类,调用管理类中的方法,有一个完整的界面。Animal类package zoo;public abstract class Animal {原创 2018-02-05 09:05:23 · 13223 阅读 · 0 评论 -
java SE 简单的学生信息管理系统
问题描述 完成一个学生管理程序,使用学号作为键添加5个学生对象,其中使用Map集合,进行简单的查找,删除,增加操作。学生的属性: 学号,姓名,性别,年龄,数学成绩,java成绩。简单的使用了面向对象首先有一个Student类package com.stu.test1;/** * 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部的信息保存在文原创 2018-01-27 18:46:58 · 2830 阅读 · 0 评论 -
用户登陆判断
用户登陆一般,会有判断名字和密码两个是否一一匹配的方法:package com.xatu.Test;import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * 判断并处理用户登陆问题。 * * @author Feng 2018年2月3日上午9:38:00 */原创 2018-02-03 14:32:38 · 1029 阅读 · 0 评论 -
java SE 数组中同一栈地址的操作
今天,老师突然提到了一个我都没注意过的问题。堆与栈,在数组的实现上是怎么用的?首先看看内存分配一般我们定义一个数组,我更喜欢叫它是声明,声明一个数组,比如 int[] arr1 = new int[3]; int[] arr2 = new int[3]; 这样子的声明,在栈和堆里到底是怎样的呢。 绘制了一个简单的示意图,声明的时候,是把数组名字存到栈内存的,这里存放的是地址原创 2018-01-25 14:38:38 · 347 阅读 · 0 评论 -
java SE 数组复合运算与数据类型的细节
有发现一个问题。关于复合运算符,和普通的运算,一般我们会认为复合运算符和普通的运算符来计算是相同的。其实不然,复合运算符的出现,或者是它的作用还不止于此。首先复合运算符是高效率的package com.u1.day05;/** * 这个程序是用来比较普通运算符和复合运算符的效率问题。 * 使用“计算后的时间”减去“计算开始的时间”,看他俩谁用的时间多,谁就效率差,反之就是效率高。原创 2018-01-26 09:30:32 · 369 阅读 · 0 评论 -
java SE 用星号打印图形
今天突然想到了自己对for循环的理解,因为之前老师讲过九九乘法表的打印方法,自己却还没真的那么做过,就想着要做一下,顺便就把打印图形再复习一遍。首先是打印一个九九乘法表package demo0124;/** * 一个九九乘法表 * * @author Feng 2018年1月24日下午12:24:15 */public class ChengFaTable {原创 2018-01-24 14:30:54 · 2546 阅读 · 1 评论