自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 安卓逆向,阻止app对root权限的检测

我的博客园地址:https://www.cnblogs.com/zenglintao/p/12861113.html一、smali基本语法本次实战需要用到smali语言的知识,下面讲一下smali语言的基本语法吧.field private isFlag:z  定义变量.method  方法.parameter  方法参数.prologue  方法开始.line 12  此方法位于第12行invoke-super  调用父函数const/high16 v0, 0x7fo3  把0x7fo

2020-05-09 23:15:00 16817 3

转载 Android主流HOOK框架介绍与应用--游戏破解游戏外挂的必杀技

概述使用HOOK方案主要是在分析的时候会经常用到,虽然二次打包重新修改代码也可以做到,但是一方面效率低,另一方面如果APP有校验的逻辑就需要进一步绕过,总体还是比较费时费力。所以,通过动态HOOK的方式可以不用直接修改APP文件,也比较方便。下面就分别介绍下比较成熟的几个HOOK框架及其应用:XPOSED,frida,substrate。XPOSED本节介绍的是XPOSED框架的使用,XPOSED的安装器替...

2020-08-02 10:50:59 4819

原创 支持Java 8的TLS改进

应用程序层TLS协商的改进已反向移植到Java 8,使那些客户端能够利用HTTP / 2上的网络功能。以前,这项工作在Java 9及更高版本中可用。这一变化是对旧客户端的重要增强,因为New Relic最近的“ Java状态 ”报告反映了85%的系统都在Java 8上运行。最初是作为带有Java 9的JEP 244发布的,此反向移植使客户端可以在Java中进行更新8系列可以与请求HTTP / 2通信的较新的非Java系统进行通信。如果不进行更新,则这些客户端将被迫采用旧的TLS结构,或者服务器端应用程序将

2020-06-08 20:35:35 11600

原创 通往Groovy 3.0的漫漫长路,以及他们新改进的解析器

Apache Foundation已发布了Groovy的3.0版,其中包括以下新功能:新的解析器,程序包名称空间更改,增强的Elvis运算符以及对Java语法的支持,例如do / while循环,数组初始化,lambda和方法引用。Groovy 3.0需要使用JDK9 +来构建应用程序,并且Java Runtime Environment(JRE)的最低受支持版本是JDK8。Groovy 3.0引入了一个新的Groovy解析器,代号为Parrot。它的名称源于它打算继承现在继承的Antlr2解析器的“pa

2020-06-08 20:33:51 12622

原创 Web编译器CheerpJ 2.0使用WebAssembly将Java应用程序移植到浏览器

LeaningTech 最近发布了CheerpJ 的第二个主要版本。CheerpJ 2.0可以将Java应用程序转换为HTML,WebAssembly和JavaScript 的混合,以便开发人员可以在浏览器中运行Java应用程序(包括小程序)或将Java库集成到Web应用程序中。CheerpJ 2.0使用WebAssembly来提高运行速度。CheerpJ 2.0在WebAssembly和JavaScript中提供了完整的(Java 8语言的100%),模块化,优化的Java 8 SE运行时库。运行时还补

2020-06-08 20:32:22 12840

原创 Theia Framework 1.0支持Web ide

本周早些时候,Eclipse基金会宣布发布Eclipse Theia 1.0,这是一个用于构建Web和本机IDE的开源框架。Theia提供了一个用于构建IDE的JavaScript框架,该IDE可以在Web上运行,也可以打包到Electron应用程序中以在桌面上运行。它被设计为与VSCode扩展兼容,并使用相同的语言服务器协议来能够远程开发各种编程语言,包括Java,Python,Rust 等。尽管Theia表面上看起来类似于VSCode,但是Theia实际上是一个IDE框架,而不是IDE本身。它提供了组

2020-06-08 20:31:10 11024

原创 MicroProfile 3.3的新增功能

Eclipse Foundation 发布了 MicroProfile 3.3,其中包含对以下五个API的更新:其他改进包括对规范和文档的说明和增强,所有MicroProfile API之间的集成度提高,不同MicroProfile实现之间的互操作性以及每个API的完整工件集。MicroProfile Rest Client API 基于JSR 339的一致性和更易重用性,提供了一种类型安全的方法来通过HTTP调用RESTful服务来处理客户端和服务之间的通信。Rest Client建立HTTP连接并

2020-06-08 20:29:42 10932

原创 Micronaut Servlet-针对Servlet API开发人员的新Micronaut项目

Object Computing,Inc. 推出了 Micronaut Servlet,这是一个新的Micronaut项目,该项目实现了一个Micronaut HTTP服务器,该服务器返回到Servlet API,该API允许流行的Servlet容器作为服务器运行。Micronaut Servlet为熟悉传统Servlet容器并在Servlet生态系统中进行大量投资的开发人员提供了一种替代方法。特别是,这些开发人员通常属于以下三类之一:[1]那些想使用Micronaut,但目标部署环境基于servlet的开

2020-06-08 20:28:20 10889

原创 Leyden项目旨在缩短Java启动时间

Java语言架构师Mark Reinhold建议创建一个新的OpenJDK项目Leyden:具有更快启动速度和更低内存的静态应用程序二进制文件。一旦批准并完成,这将使开发人员能够(提前)将Java代码(及时)编译到本机应用程序中,并提供类似于GraalVM本机模式的功能。该项目得到了Oracle,Reinhold和RedHat的概念性支持。按照项目建议,RedHat的OpenJDK负责人Andrew Haley插话说:“这是个好消息。现在是时候将静态AOT编译付诸实践了。让我们完成它!” Paul Hoh

2020-06-08 20:26:49 10922

原创 Helidon 2.0计划的重要新功能

在正式发布 Helidon 1.0 不到一年之后,Oracle正朝着正式发布计划于2020年春末发布的Helidon 2.0迈进。在2月初发布的Helidon 2.0.0-M1和Helidon 2.0中。 3月下旬发布的0-M2为Java社区提供了重要的新功能的预览,这些新功能包括:支持响应消息和流;一个新的命令行工具,一个用于Helidon SE的新Web客户端API,对Helidon MP的GraalVM支持以及一个新的反应式数据库客户端。在Helidon 1.0.3版本中引入的对GraalVM的支持

2020-06-08 20:25:34 10852

原创 Duolingo如何将其Android应用迁移到100%Kotlin

在过去的两年中,Duolingo无缝地将其Java Android应用程序迁移到100%Kotlin。在此带来的主要好处中,开发人员提高了工作效率和满意度,而Duolingo应用程序几乎免费获得了空指针异常(NPE)。下面是与Duolingo Android和网络开发负责人Art Chaidarun的对话,以了解有关他们的经验的更多信息。自从Google使Kotlin成为Android开发的首选语言以来,JetBrains的语言就凭借其现代功能集吸引了越来越多的开发人员兴趣。成功的语言学习平台制造商Duo

2020-06-08 20:22:22 10801

原创 Dekorate为Java项目生成Kubernetes和OpenShift清单

Dekorate(以前是ap4k项目)旨在简化基于Java的项目中Kubernetes和OpenShift清单的生成。该项目被更名,因为它现在支持在不使用注释的情况下装饰Kubernetes清单,因此名称ap4k不再准确地描述该项目。Dekorate是用于Kubernetes和OpenShift清单的Java编译时生成器和装饰器的集合。开发人员无需编辑任何XML,JSON或YAML即可自定义这些清单。使用Dekorate,开发人员可以使用注释处理,配置属性(application.properties)

2020-06-08 20:20:53 10886

原创 Concurnas:JVM上用于并发和GPU计算的新语言

Concurnas是一种新的开源JVM编程语言,旨在用于构建并发和分布式系统。Concurnas是一种静态类型的语言,具有面向对象,功能和反应式编程构造。凭借隐藏多线程复杂性的简洁语法以及对GPU计算,向量化和矩阵等数据结构的本机支持,Concurnas可以构建机器学习应用程序和高性能并行应用程序。此外,Concurnas还提供了与其他JVM语言(如Java和Scala)的互操作性。Concurnas支持Oracle JDK和OpenJDK版本1.8到最新的GA版本14。以下是与Concurnas的创始

2020-06-08 20:18:59 11108

原创 Spring中的RequestBody注释

@ requestbody 注释可用于处理 web 请求。更具体地说,它用于将方法参数绑定到请求的主体,它的工作方式是 HttpMessageConverter 根据请求内容的类型转换请求的主体。语法<modifier> <return-type> <method-name> (@RequestBody <type> <name>) {}以上语法的示例:public String congratulateEmployee(@Reque

2020-05-29 17:06:44 10318

原创 Spring中的PathVariable注释

就像@RequestParam一样,@PathVariable批注用于从HTTP request中提取数据。但是,它们略有不同。区别在于@RequestParam从URL获取参数,而@PathVariable只是从URI中提取参数。例子让我们假设你有一个以下 URL 的网站:http://www.yourwebsite.net/employee/1上面 URL 中的1表示雇员的 ID。 到目前为止一切ok。 但是现在,从 Spring 控制器看,路径看起来是这样的(取决于您给 id 的名称) :

2020-05-29 16:40:48 11736

原创 Java Docker和Docker容器简介

简而言之,Docker 是一个工具,它允许您通过使用所谓的容器轻松地构建、部署和运行应用程序。 这些容器允许我们打包所有必需的东西,比如库和依赖项。此外,容器在主机操作系统上运行。当我们使用 Docker 的时候有很多好处:增强了应用程序的可移植性,并且可以非常轻松地创建测试应用程序,而不必依赖于环境优化基础设施将应用程序及其依赖项打包到标准化单元中容器我不是在谈论现实世界中的容器。但是,既然您正在思考它,我不妨作个比喻。现实生活中的容器的目的是存储需要运输到另一个地方的货物或物品。现在,

2020-05-29 15:27:33 12829

原创 Spring依赖注入示例

在这个教程中,你将学习什么是 Spring 依赖注入,它是如何工作的,以及如何使用它。什么是依赖注入?依赖注入是您必须了解的Spring基础知识之一。当您创建一个复杂的应用程序时,很可能会有不同的对象一起工作。 理想情况下,您希望这些对象彼此独立。 这个设计原则是控制反转的,它强调 Java 类是相互独立的,然后容器会将其从对象创建和维护中解放出来。 如果您不熟悉 IoC,我强烈建议您阅读这篇关于IoC的文章。思考一下您将如何按照传统方法创建对象依赖关系。您将必须创建对象类型的实例变量,然后使用构造

2020-05-29 14:40:50 10364

原创 Java Spring IoC容器示例

简而言之,IoC容器负责实例化/创建和配置对象并组装对象之间的依赖关系。您可能想知道IoC容器如何接收数据并执行上述操作,答案来自三个地方中的一个: XML文件、 Java 代码或 Java 注释。IoC容器是Spring中的一个框架,用于管理POJO(普通的旧Java对象)的生命周期,并在需要时将其插入Java程序中。通常,Java对象通过两种方式声明其依赖项:将它们作为参数传递给构造函数通过将它们作为对象的 setter 方法的参数传递Spring 的 IoC 容器基于两个包:**org

2020-05-29 14:13:14 10416

原创 Java的封装

此教程演示了Java编程语言中封装的用法什么是封装封装就是将变量和方法包装在一个单元中。封装也称为数据隐藏。为什么?因为,当您设计类时,您可以使变量对其他类隐藏,只提供处理数据的方法。您的类应该设计成黑匣子。您可以从外部(类)访问多个方法,并且可以访问每个方法的返回值类型。您需要了解的有关此类的所有信息是方法的名称和返回值类型。换句话说,你给类一些数据,并得到新的数据作为响应,而无需关心用于数据处理的内部机制。封装是面向对象编程(OOP)背后的四个主要概念之一。OOP问题在求职面试中很常见,因此您可能

2020-05-24 20:48:29 10403

原创 如何使用Maven配置文件

简而言之,Maven是一个可以覆盖默认配置值的配置文件。通过使用它,您可以为不同的环境创建自定义版本。在继续学习本教程的内容之前,假定您已经安装了Maven。如果你还没有,请按照我的这篇博客逐步进行操作。要在Maven中指定配置文件,您需要使用pom.xml文件中的activeProfiles或profiles元素 。pom.xml在运行时被修改 。有3种构建配置文件类型。每个项目在pom.xml文件中定义每个用户在Maven设置xml文件(%USER_HOME%/.m2/settin

2020-05-23 20:29:41 10822

原创 如何将自定义库包含到Maven本地存储库中

如果您曾经想过是否可以使用Maven上传自己的库作为依赖项,那么答案是可以的。这真的很简单。只需要两步就能完成。第1步在命令行中进入到您的Maven项目路径,并上传一个库,这就是maven命令的结构:mvn install:install-file-Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackag

2020-05-23 20:27:26 10404

原创 如何在Windows,Linux和Mac上安装Maven

在本教程中,我们将介绍Maven的安装过程。如果您是Windows用户(如果您是Linux或Mac用户,请向下滚动以查看如何安装Maven):在继续下一步之前,请确保您已在系统上安装了JDK。如果你还没有安装,请查看我往期的博客。下面是安装maven的系统需求。请单击此处下载最新版本。 您可以选择二进制版本或完整版本(也就是包含源代码和文档的版本)。 我建议你下载二进制文件,因为你可以在网上找到所有的源代码和文档。如果你不想包含源代码和文档,选择二进制版本。 当你点击链接,它应该会自动开始下载压

2020-05-23 20:22:20 10420

原创 Android Studio第4部分:调试工具和生产力插件

        Android Studio提供了丰富的内置开发工具,以及更丰富的插件生态系统。本系列的前三篇文章重点介绍如何使用Android Studio 安装和设置以及编码和运行一个简单的移动应用程序。现在,您将熟悉一些更高级的工具:三个内置工具和三个插件,用于调试和提高Android应用程序代码的质量和生产率。本文介绍了适用于Android Studio的以下工具:内置调试工具LogcatDebugLint

2020-05-22 13:08:11 8345

原创 Android Studio第3部分:构建和运行应用程序

        在Android Studio的第2部分中,您使用Android Studio创建了第一个动画移动应用程序。现在,第3部分将带您完成在Android模拟器或真实设备中构建和运行应用程序的步骤。我们将首先使用Gradle构建应用程序的应用程序包(APK)文件。然后,我将向您展示如何在Android模拟器或实际设备(在本例中为Kindle Fire平板电脑)上设置和运行该应用程序。我还将向您展示如何解决Androi

2020-05-22 12:08:13 8894

原创 Android Studio第2部分:探索和编写应用程序

        在之前Android Studio第1部分介绍中,您在开发环境中设置了Android Studio,并了解了用户界面。现在,在第2部分中,您将编写第一个应用程序的代码。这个手机应用程序包含一个activity,该activity展示了Google的Android机器人角色以及为该角色设置动画的按钮。单击按钮会使角色逐渐从绿色变为红色,再变为蓝色,然后再变为绿色。尽管该应用不是特别有用,但编写它可以帮助您熟悉使用

2020-05-22 00:18:10 7838

原创 Android Studio第1部分:安装和配置

        多年来,很明显,Android是移动OS领域不可忽视的力量。这项基于Java的技术引发了新的淘金热,程序员竞争通过其移动应用程序赚钱。Android的职位也很多,如使用Instant进行职位搜索。要获得成功,Android开发人员需要对Java语言(或Kotlin),Android API和Android应用程序体系结构有很好的了解。使用适当且有效的开发环境也很重要。多年来,带有ADT插件的Eclipse ID

2020-05-20 23:40:50 8327 2

原创 在PostgreSQL中备份和还原数据库(pg_dump,pg_restore)

在这里,我演示了如何在PostgreSQL中备份和还原dabatase1)使用pg_dump备份数据pg_dump -i -h localhost -p 5432 -U postgres -F c -b -v -f"/usr/local/backup/10.70.0.61.backup" old_db要列出pg_dump的所有可用选项,请使用以下命令。pg_dump -?-p,-port = PORT数据库服务器端口号-i,-ignore -version 即使服务器版本不匹配,也要继续进

2020-05-17 20:31:55 9461

原创 Java –如何获取当前日期时间

        在本文中,我将向您展示如何从经典的Date和Calendar API以及新的Java 8日期和时间API – LocalDateTime和LocalDate获取当前日期时间。1.代码对于java.util.Date,只需创建一个新的Date()DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");Date date = ne

2020-05-16 20:11:40 7990 1

原创 Kotlin方式中组合优于继承

        组合优于继承是面向对象编程中的重要原则。而不是在一个单一类中实现所需接口的所有功能,这些功能应该在不同的实例中独立实现,然后使用这些对象最终为目标类提供所有提供的功能。这一原则使代码更具可重用性和可维护性。示例让我用一个简单的例子来解释这个想法。假设您在一家汽车公司工作,而您的工作是根据各种要求制造汽车,例如汽车的颜色(外观),最大速度(性能)和座椅数量(内部)。当然,现代汽车还有很多其他的特点,在这个例子中

2020-05-16 19:49:17 7953

原创 在Ubuntu 18.04上安装Oracle Java SE 11

针对安装Java 11的Ubuntu Linux用户的快速安装指南本文是为Ubuntu Linux用户安装Java 11(当前的长期支持(LTS)Java版本)提供的快速指南。我将简要介绍将代码库迁移到Java 11的情况,然后指导您完成使用Ubuntu命令行安装Oracle JDK 11的步骤。请注意,这是Ubuntu用户安装Java 11的快速指南。我不会深入探讨Java 11的功能或迁移问题,其他地方对此进行了详细介绍。迁移到Java 11的情况Java 8于2014年3月发布,有望为Java

2020-05-16 17:57:42 9550

原创 Typora批量上传图片

我的博客园地址:https://www.cnblogs.com/zenglintao/p/12876725.html        用Typora写博客有时需要上传大量的图片,很多朋友都是一张张点击上传的,今天就来讲一下Typora如何批量的上传图片。一、软件设置首先点击文件,打开偏好设置然后点击图像,先配置好插入图片时的动作这三个选项都是可以的,因为都是将粘贴的图片复制到本地这几个选项可以根据自己的需要进行勾

2020-05-12 15:58:15 7788 5

原创 使用gitee(码云)作为博客图床

我的博客园地址:https://www.cnblogs.com/zenglintao/p/12876346.html其实github也可以做图床,但是由于国内访问github的速度,所以我还是选择使用国内的gitee(码云)作为博客的图床。一、注册账号​ https://gitee.com/​ 首先打开码云的网址注册一个账号二、创建仓库然后点击右上角的加号创建一个仓库创建仓库时记得选择公开仓库,勾选使用Readme文件初始化仓库,分支模式选择单分支这个仓库就用来存放我们需要上传的图片

2020-05-12 15:13:40 6656 7

原创 Java开发必会的Linux命令

作为一个Java开发人员,有些常用的Linux命令必须掌握。即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器机器交互,就要通过shell命令。本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用--help查看帮助或者直接通过google搜索学习。1.查找文件find / -name filename.txt 根据名称查找/目录下的filename.txt文件。find . -na.

2020-05-10 18:40:55 4093 1

原创 git的基本使用方法

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper。一、软件安装下载地址:https://git-scm.com/downloads根据自己的系统下载安装相应的版本二、绑定Github账户安装完成后会有一个Git Bash,双击打开,如果没

2020-05-09 12:51:12 5140 1

原创 使用java类代替web.xml配置(实训项目开发)

使用spring-webmvc依赖包中的AbstractAnnotationConfigDispatcherServletInitializer抽象方法代替web项目中的xml配置。AbstractAnnotationConfigDispatcherServletInitializer的任意类都会自动配置DispatcherServlet和Spring应用上下文,Spring应用上下文会位于应用...

2020-05-06 22:03:24 4967 1

原创 javascript addEventListener() 方法的使用

版权声明:本文为博主博客园原创文章,转载请著名作者和出处。原文地址:https://www.cnblogs.com/zenglintao/p/12823843.html 首先我们先新建个html文件,打好基本框架   然后我们再新建个button,id为btn 现在点击不会有任何效果  创建一个js,函数...

2020-05-03 22:10:05 4929 1

原创 最好用的录屏工具Bandicam (班迪录屏)

版权声明:本文为博主博客园原创文章,转载请著名作者和出处。原文地址:https://www.cnblogs.com/zenglintao/p/12819479.html 一、用途及特色1.1 软件用途Bandicam(班迪录屏)屏幕录制,游戏,视频网站,摄像头等电脑屏幕上所有看到的内容录制成高清视频,不仅保证原文件的质量和录制的视频文件小,与其他录像软件相比发挥更卓越的性...

2020-05-02 21:19:56 7331 2

原创 markdown改变字体、颜色和大小

版权声明:本文为博主博客园原创文章,转载请著名作者和出处。原文地址:https://www.cnblogs.com/zenglintao/p/12813387.html 要想改变字体和颜色,可以使用font标签改变颜色用color属性(支持RGB和十六进制)改变大小用size属性改变字体用face属性(字体需要加双引号)    ...

2020-05-01 14:18:34 6044 1

原创 解决电脑桌面图标变白消失

版权声明:本文为博主博客园原创文章,转载请著名作者和出处。原文地址:https://www.cnblogs.com/zenglintao/p/12812843.html相信很多朋友都有遇到过这样的情况,电脑桌面的图标消失不见了。有些朋友觉得无所谓,但是对于有强迫症的朋友来说实在很难受所以我就写了这篇博客帮助大家简单快速的修复电脑桌面图标首先新建文本文档,将下面的代码复制粘贴到文本中,保存后...

2020-05-01 12:57:49 4543 1

原创 使用Java正则表达式批量提取文本信息

版权声明:本文为博主博客园原创文章,转载请著名作者和出处。原文地址:https://www.cnblogs.com/zenglintao/p/12812804.html 对于在职场工作的朋友们如果需要批量提取文本信息就可以使用本方法 1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 impor...

2020-05-01 12:41:22 4647 1

txt文本分割合并

可以分割和合并任意大小的txt文件,优点:两种合并格式,能够选择文件名区间进行合并,也能进行字串合并。

2019-02-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除