
从零开始学习Java
文章平均质量分 57
从基础语法到面向对象编程,逐步讲解Java核心知识。结合实战案例,带你掌握开发技能,轻松入门Java世界,为进阶学习打下坚实基础!
bjxiaxueliang
在这里,我们聊技术,也聊生活。从移动领域到网络开发,从图形图像到AI机器学习,畅谈各领域的学习经验,探讨技术趋势;分享生活点滴,吐槽日常琐事,记录旅途见闻。品一杯清茶,享一段闲暇...!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java线程池ThreadPoolExecutor
转载请保留出处:下面介绍ThreadPoolExecutor的实现原理。我想用我能说出来的最简单的话,介绍出ThreadPoolExecutor是怎么实现的,对源代码不进行详细说明。一、参数含义:corePoolSize 线程池中所保存的线程数,包括空闲线程。maximumPoolSize 线程池中允许的最大线程数(采用LinkedBlockingQueue时没有作用)。keepAliv原创 2017-03-08 10:58:31 · 398 阅读 · 0 评论 -
java动态代理的作用 与 使用
java动态代理import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class Test { public static void main(String args[]) { // 创建一个捕鱼人原创 2017-05-12 14:53:18 · 611 阅读 · 0 评论 -
Java实现汉诺塔
public class Han { private int n = 4; private char a = 'a'; private char b = 'b'; private char c = 'c'; public static void main(String[] args) { Han towerOfHanoi = new Han();原创 2017-05-20 07:55:22 · 596 阅读 · 0 评论 -
C++/JAVA运行机制和运行效率
一、运行机制1、JAVA-编译和解释型语言 一个JAVA文件,首先会由JAVA编译器(JAVAC)编译成class(字节码文件)文件,然后由Java虚拟机(JVM)去解释。2、C++-编译型语言 C++一旦编译就可以运行二、运行效率C++编译成为对应平台的CPU指令集,可直接执行;Java应用在运行时执行的是Java指令,这就需要JVM(虚拟机)对每条Java指令进行解释后执行;原创 2017-05-19 15:05:04 · 1349 阅读 · 0 评论 -
java中synchronized
一、锁对象Class Test { // 修饰方法,锁的是对象 public synchronized void methodAAA() { } public void methodBBB() { //锁类的对象 synchronized(Test.this) } }二、锁方法Class Test { //原创 2017-05-19 15:10:51 · 278 阅读 · 0 评论 -
Java 快速排序
1、算法概念。快速排序(Quicksort)是对冒泡排序的一种改进。2、算法思想。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。3、实现思路。以第一个关键字 K 1 为控制字,将 [K 1 ,K 2 ,…,K n ] 分成两个子区,使左区所有关键原创 2017-05-19 15:06:31 · 358 阅读 · 0 评论 -
[java代码片段] Java/Android将byte[]读入文件
File file = new File(Environment.getExternalStorageDirectory() .getPath() + "/xiaxl/1.txt"); // 存放数组数据的文件 FileOutputStream out = null; try { out = new FileOutputStream(file);原创 2017-05-20 07:59:23 · 1044 阅读 · 0 评论 -
Java实现二分查找
public class Test { public static void main(String[] args) { int[] src = new int[] { 1, 3, 5, 7, 8, 9 }; System.out.println(binarySearch(src, 3)); } /** * 二分查找算法原创 2017-05-19 15:07:44 · 412 阅读 · 0 评论 -
[java代码片段] Java文件复制
/** * 复制文件 * * @param fromFile * @param toFile */public static void copyFile(File fromFile, File toFile) { Log.d("xiaxl: ", "---copyFile---"); long starttime = System.currentTimeM原创 2017-05-19 14:53:35 · 441 阅读 · 0 评论 -
一文详解 RxJava2 使用及实现原理
RxJava—一个可以在JVM上运行的,基于观察者模式 实现异步操作的java库。其英文描述为:RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java原创 2018-06-19 18:38:31 · 2914 阅读 · 0 评论 -
Java 冒泡排序
冒泡排序算法的运作如下:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。冒泡排序的过程图: public class Test { public s原创 2017-05-22 10:14:13 · 460 阅读 · 0 评论 -
Mac安装Java与配置环境变量
Mac安装Java与配置环境变量分为三部分安装JDK查找java安装路径配置环境变量一、安装JDK进入oracle官方下载JDK,下载地址如下:https://www.oracle.com/java/technologies/javase-downloads.html点击下载后的.dmg文件安装jdk:二、查找java安装路径打开终端,运行以下命令,查找Java安装路径// 查找java安装路径/usr/libexec/java_home -V从终端输出结果可以得出:J原创 2021-07-13 12:44:18 · 1196 阅读 · 0 评论 -
深入解析Java中volatile关键字的作用
深入解析Java中volatile关键字的作用转自: http://www.jb51.net/article/41185.htmJava语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized 和 块语句,在...转载 2017-05-22 10:12:31 · 500 阅读 · 0 评论 -
Java xml格式化工具
Java xml格式化工具Java 实现xml格式化工具代码地址: https://github.com/xiaxveliang/JavaTool_XmlValidate运行效果点击“乘1.5”按钮后的运行效果原创 2017-05-22 10:11:07 · 2611 阅读 · 2 评论 -
Java Json格式化工具
Java Json格式化工具Java 实现Json格式化工具代码地址: https://github.com/xiaxveliang/JavaTool_JsonValidate运行效果 点击“乘1.5”按钮后的运行效果原创 2017-05-22 10:28:47 · 1959 阅读 · 0 评论 -
Mac 卸载Java
Mac 彻底卸载Javamac上终端安装了太多的Java JDK版本,计划全部删除,重新安装最新版本JDK。打开终端输入以下命令:// 1、移除 JavaAppletPlugin.plugin 与 JavaControlPanel.prefpanesudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin sudo rm -fr /Library/PreferencesPanes/JavaControlPanel.prefpane原创 2021-07-13 11:40:43 · 992 阅读 · 1 评论 -
[Java] 执行.jar并输出运行日志
Java 执行.jar的同时,将运行日志打印到文件中。// 执行xxx.jar,将日志写入1.txtjava -jar xxx.jar > 1.txt举例如下:原创 2021-09-30 23:02:32 · 1644 阅读 · 0 评论 -
一文详解java.nio.ByteBuffer
java.nio.ByteBuffer是一个可以进行缓冲区分配、读取和写入的缓冲区,其持有一个字节数组,并通过4个属性:capacity、limit、position、mark来管理缓冲区,进行字节级别读取和数据写入。基于此,ByteBuffer常被用来处理网络协议和I/O操作。原创 2023-02-15 11:16:37 · 1171 阅读 · 0 评论 -
一文简介 CMake 构建系统
CMake 是一个跨平台的开源构建系统(BuildSystem),CMake 可以通过 CMakeLists.txt 文件来产生特定平台的标准的构建文件。例如:为 Unix 平台生成makefiles文件(使用GCC编译);为 Windows MSVC 生成 projects/workspaces(使用VS IDE编译)或Makefile文件(使用nmake编译)。原创 2022-04-13 15:58:18 · 2090 阅读 · 0 评论 -
一文学会 使用Kotlin Coroutine协程
关于线程、协程两者的对比,可以简要叙述如下:线程:线程由操作系统调度,线程切换或线程阻塞由操作系统和CPU调度实现;协程:协程运行于操作系统的用户态,其依赖于线程来实现,通过用户态程序控制,尽量`减少或避免因线程阻塞造成的操作系统与CPU开销`。与线程相比不同点在于,`协程挂起时不需要阻塞其运行的线程`。`协成挂起`期间,其对应的`线程可以被分配其他协程任务来执行`,待`该协程任务挂起结束再次开始时,将该协成再次交由某个线程来继续执行`(挂起期间,`类似于将该协程任务添加到了某个任务队列中`)原创 2022-03-09 18:16:23 · 7347 阅读 · 0 评论 -
kotlin基础语法
一、基本数据类型分一下几种进行介绍。数值类型字符类型Boolean1.1 数值类型Kotlin 的基本数值类型包括 Byte、Short、Int、Float、Long、Double数据类型位长Byte8Short16Int32Float32Long64Double64分一下几种情况分别进行说明:数值类型使用;数值类型 二、八、十六进制转换;数值比较;数值类型转换;数值类型位操作;1.1.1 数值类型使用基原创 2022-03-02 18:24:13 · 5477 阅读 · 0 评论 -
Gson 复杂数据解析
一、简单数据解析1、简单json转对象 Json字符串如下:{"name":"name22","age":22} 下边上Java代码// UserData.javapublic class UserData { public String name; public int age; @Override public String toString() {原创 2017-05-20 07:58:00 · 755 阅读 · 0 评论 -
Android P(Android9 API 28)适配需要哪些代码更改
Android P(API 28)适配需要哪些代码更改最好的文档依据为:google官方文档:行为变更:以 API 级别 28+ 为目标的应用google官方文档:将应用迁移到 Android 9下面来介绍Android P(API 28)适配,我们的App 需要做哪些更改:1、targetSdkVersion 282、前台服务: 使用 Service 需添加普通权限 FOREGRO...原创 2019-05-24 12:51:21 · 5491 阅读 · 1 评论 -
Java TimeUtil 时间工具类
TimeHelperUtil.javaimport java.text.SimpleDateFormat;import java.util.Date;public class TimeHelperUtil { private static final String TAG = TimeHelperUtil.class.getSimpleName(); // 一天的时间 publ原创 2017-05-19 14:46:08 · 516 阅读 · 0 评论 -
Java TimeUtil ISO8601时间格式化
ISO8601日期格式 解析代码实现、解析举例如下:import java.time.*;import java.time.format.*;class Untitled { public static void main(String[] args) { timeFormat("2020-12-19T16:22:50.000Z"); timeFormat("2020-12-19T16:22:50.000Z"); timeFormat("2020-12-19原创 2021-06-11 11:09:20 · 917 阅读 · 1 评论 -
Java TimeUtil 根据年月日判断周几
java根据年月日判断周几public class Test { //基姆拉尔森计算公式根据日期判断星期几 public static void CalculateWeekDay(int y, int m, int d) { if (m == 1 || m == 2) { m += 12; y--; }原创 2017-07-13 15:34:22 · 4470 阅读 · 1 评论 -
Android BitmapUtil Bitmap读取、保存、下载、效果处理
import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.UR原创 2017-05-18 10:41:30 · 894 阅读 · 0 评论 -
Android Bitmap进行Base64编码
android 中将 “base64图片” 解码为".png"图片@(CSDN)[Android]参考:Convert base64 image data to an image file(.png) and save it to Local file system方法一String base64Img = "";if (base64Img.contains(",")) { S...原创 2019-03-28 15:54:29 · 1402 阅读 · 0 评论 -
Android FileUtil 文件复制、删除、数据读写、文件名与大小获取
/** * 删除文件或者文件夹 * @author http://xiaxveliang.blog.163.com * @param file */public static boolean deleteFiles(File file) { if (file == null || !file.exists()) { return false; } /原创 2017-05-20 08:01:19 · 3892 阅读 · 0 评论 -
Java ZipFileUtil 文件压缩工具类
Java ZipFileUtil 文件压缩工具类,便于下次的敏捷、快速开发。/** * 文件压缩工具类 */public class ZipFileUtil { /** * 多个文件的压缩 * * @param filePaths 文件列表 * @param destZip 压缩后文件 例:abc.zip * @return */ public static boolean exportZipFromPaths(Lis原创 2021-09-27 13:34:40 · 777 阅读 · 0 评论 -
Android Q(Android 10 API 29)适配指南——Scoped Storage in Android 10
从Android 10开始,即便应用请求了WRITE_EXTERNAL_STORAGE权限,其对全局外部存储的访问也受到限制,鼓励开发者采用Scoped Storage的新规范来保护用户隐私和数据安全。如果应用需要更广泛的访问权限,需要请求MANAGE_EXTERNAL_STORAGE权限来访问用户选择的文件和目录,由于此权限的强大访问能力,Google Play会对申请使用该权限的应用进行严格审查,确保应用的用途正当且必要。原创 2017-05-19 14:51:17 · 2259 阅读 · 0 评论 -
Android Base64Util工具类
Android Base64Util 工具类public class Base64Util { public static String strToBase64(String str) { byte[] byteStr = str.getBytes(StandardCharsets.UTF_8); return Base64.encodeToString(byteStr, Base64.DEFAULT); } public static Stri原创 2021-09-27 13:15:51 · 934 阅读 · 0 评论 -
Android ColorUtil 颜色格式转化
Android ColorUtil 颜色格式转化工具类整理。public class ColorUtil { /** * 将 颜色值 转化为 #AARRGGBB * * @param color -1272178 * @return #AARRGGBB */ public static String color2HexARGB(@ColorInt int color) { // 转化为16进制字符串 St原创 2021-09-27 13:19:03 · 1031 阅读 · 0 评论 -
Android dp、sp 转换为 px 的工具类
import android.content.Context;/** * dp、sp 转换为 px 的工具类 * * */public class DisplayUtil { /** * 将px值转换为dip或dp值,保证尺寸大小不变 * * @param pxValue * @param scale *原创 2017-05-18 10:28:46 · 785 阅读 · 0 评论 -
Java Gson 使用工具类
Java Gson使用工具类,对应的Github官方源码如下:https://github.com/google/gsonpublic class GsonUtil { /** * 将对象转成json格式 * * @param object * @return String */ public static String beanToString(Object object) { String gsonString =原创 2021-09-27 13:24:43 · 572 阅读 · 0 评论 -
Android AES 16字节加解密
Android AES 16字节加解密代码运行结果private static final String KEY = "asdfghjklqwertyu";// 加密String encrypt128 = AESUtils.encrypt128("http://blog.csdn.net/xiaxl", KEY);Log.e("xiaxl: ", "encrypt128: " + encryp原创 2017-11-23 15:34:58 · 2264 阅读 · 1 评论 -
Android 电池剩余使用时长
Android 电池大概剩余使用时长(分钟),只是一个非常不准确的预估值,如果需要准确值仍需要仔细考虑。以下仅供参考。public int getBatteryRemainingMinutes() { BatteryManager batteryManager = (BatteryManager) MainActivity.this.getSystemService(android.content.Context.BATTERY_SERVICE); // 剩余电量百分比 BATTERY_原创 2021-09-02 12:31:46 · 2758 阅读 · 0 评论 -
android NetworkUtils
import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.net.NetworkInfo.State;/** * 网络判断工具类 * * @author http://xiaxveliang.blog.163.co原创 2017-05-18 10:40:35 · 704 阅读 · 0 评论 -
android 属性动画工具类
import android.animation.Animator;import android.animation.AnimatorSet;import android.animation.ObjectAnimator;import android.view.View;import android.view.animation.DecelerateInterpolator;public c原创 2017-05-19 14:44:23 · 1716 阅读 · 0 评论 -
Android日志输出到控制台、文件(XLog开源日志工具)
Android 日志工具最近项目开发中,遇到一个痛点:项目模块较多,不同日志混合在一起;出现线上问题时,所有日志信息混合在一起,定位困难。为解决这个问题,有了这个工具。这个工具有以下作用:开发模式debug 为 true 时,打印在控制台,同时打印到文件;发版模式debug 为 fase 时,只打印到文件;方便日志上传支持日志压缩上传缓存文件 区分模块支持不同功能模块,日志...原创 2019-12-16 16:29:06 · 3779 阅读 · 0 评论