Thinking in Java学习笔记(2)(zt)

避坑指南:Zebra打印机中文乱码问题终极解决方案(附ZT410/ZT411字体配置) 本文详细解析了Zebra打印机(特别是ZT410/ZT411系列)中文乱码问题的根源,并提供了完整的解决方案。从字库与编码匹配逻辑到中文字体导入流程,再到CI28编码配置和网络打印优化,帮助用户彻底解决中文打印乱码问题,提升工作效率。 阅读详情
打造第一个java程序
? 名称的可视性
???????? 名称问题有些人觉得不是什么大问题,我开始也觉得那不是个什么大问题,但是当你有一天写了很多的类时,你就发现,名称其实真的很重要,假如你有这么一个类,他需要调用其他几个类, 当这几个被类名相同时,问题就出现了,那么
???????? 怎么区分他们,并且使他们的名称不冲突呢?毕竟我们不可能把每个声明过的类的名字一一记住,以便在下次声声明其他名称时,加以区分。这个时候我们就需要使用包(package)了,一个包就是一个命名空间。命名空间的使用规则是:反转internet域名,例如,我的blog是blog.csdn.com/maoerzuozuo你可以在类的开头使用package maoerzuozuo.com.csdn.blog,这样就好了~每个包都是一个独一无二的命名空间。需要注意一点:当使用package说明一个包时,该包的层次结构必须和文件目录的结构相同!就想c:/maoerzuozuo/com/csdn/blog
?使用其他组件
??????? 包定义了之后一定要使用的,怎么使用呢?在文件的开头使用import关键字,假如我要导入我开发的一个叫hello.class组件,我只要import maoerzuozuo.com.csdn.blog.hello;就导入了我所创建的包,当然你也可以偷懒,用import maoerzuozuo.com.csdn.blog.*;
??导入该文件夹里所有的包(也许你有的包根本用不上),但是这样有个弊端,就是在编译的速度要比直接指明包的编译速度要慢。
?关键字static(静态的)
?????????? 一个class只有在你使用new来产生对象时,他的函数才能被外界使用,但是也有2中情况是用上面的方法无法实现的。
?????????? 1、不管产生多少的对象或没有对象产生对象时,一些特定的数据存储只有一份;
?????????? 2、类中的某个函数不想和对象绑定在一起,既我不想产生对象,但是我还想用类中的一个函数;
?????????? 一般情况下, 你要使用一个非静态(non-static)的成员的话,必须先产生一个对象使用对象来调用这个数据或函数,所以你必须知道这个函数/数据属于哪个对象才行,因为static是不用产生对象就可以使用的,所以在static的函数中不能直接调用non-static的函数或变量。
?? 解决1、把static关键字摆在成员变量或函数定义之前,就可以使他们变为静态的。
?????????? ?class StaticDemo
?????????? ?{
?????????? ??static int i=888;
?????????? ??public static void main(String args[])
?????????? ??{
?????????? ???StaticDemo sd1=new StaticDemo();
?????????? ???StaticDemo sd2=new StaticDemo();
?????????? ???System.out.println(sd1.i);//888
?????????? ???System.out.println(sd2.i);//888
?????????? ???StaticDemo.i++;
?????????? ???System.out.println(sd1.i);//889
?????????? ???System.out.println(sd2.i);//889
?????????? ?????
?????????? ??}
?????????? ?}
?????????? ?现在即使你产生n个StaticDemo对象,但是i只有原始的一份,不管你是sd1.i还是sd2.i,其实就是同一个i,全部引用自这个StaticDemo.i,所以,只要改变StaticDemo.i内存储的数据,这些sd1和sd2的i都会改变,因为他们的i的句柄全部指向的是StaticDemo.i这一个内存空间,就相当于,有一个人在a公司工作,还在b公司兼职,而他假如死掉了,则同时影响2家公司,就是这个意思,同样的道理也适用于static的函数
??? 解决2、要想不产生对象就能使用函数,这样需要在函数名前加上static
?????????? ???class StaticDemo
?????????? ???{
?????????? ????public static void show(String s)
?????????? ????{
?????????? ?????System.out.println(s);
?????????? ????}
?????????? ????public static void main(String args[])
?????????? ????{
?????????? ?????show("one");//调用方法1
?????????? ?????StaticDemo.show("two");//调用方法2
?????????? ?????new StaticDemo().show("three");//调用方法3
?????????? ????}
?????????? ???}

?????????? ???????? 对于调用方法1,其实他隐藏了一个关键子,就是this,他的完整形式应当是this.show("one"),这个this的用法以后会学到
??????????????????? 对于调用方法2,使用的是className.method()的形式,这个也就是static的函数调用的典型形式,non-static的函数是不能使用这样的方法调用的!
??????????????????? 对于调用方法3,这个方法就是我们调用函数的一般方法,创建对象,由对象调用函数,这个方法对于static和non-static是同样适用的。某个成员变量在声明为static的时候,其建立的方式有很大的变化,但是static的函数变化不大,static函数最大的一点用处就是可以在不建立对象的情况下,调用函数,就像我们经常见到的main函数一样。
你的第一个java程序
??????? java程序默认的回把java.lang下的包导入到你所创建的文件中,我们没有必要再使用import来导入。一个public的class的名称一定要和文件名称是一样的,并且一个class里面只允许有一个public的class,附则程序是编译不过去的。如果你要运行这个类的话,那么这个类中一定要有一个main()函数,他的固定格式为public static void main(String args[]),其中,public表示这是一个公开给外界使用的函数,并且是个static的不允许有返回值,而传入main()的参数必须是个String对象数组,即使你从来没有过,这个args[]的string数组可以存储cmd的参数。??????????????????
?编译与执行
?????使用javac 文件名.java来编译java文件,使用java className来执行className这个类,这里要注意2点,一个是当你使用java命令执行一个类时,这个类必须要有main函数;第二个className不一定等于文件名,一个java文件中假如有public类,那么这个类名必须要和文件名相同,其他情况你可以随你自己的意思起名字
注释及内嵌文档
??//注释单行 /*.......*/注释多行,多行注释内不能嵌套多行注释。
??寓文档于注释
????javadoc命令可以将内嵌在程序代码中的文档提取出来,生成html格式的文件,使用浏览器就可以查看。
??语法
????这个部分我就跳过去了,有兴趣的朋友自己看看,很简单的
编码风格
??类名在编写的时候,应当第一个字母大写,如果名称是由多个单词组成,则把这些个单词并在一起写,并且把他们的第一个字母大写?例如 public class MaoErZuoZuo
本章总结:
??这一章总算ko了,呵呵~其实这章讲的不难,大家就是要仔细看书,好好体会tij的精髓
本章习题解答
??这章的习题总体不难,惟独有一个题是运用了后面学习的知识,我们就把他作为难题来对付好了
??"撰写某个程序,使他能够接受由命令行传入的3个引数,为此,你需要对代表命令行引数的string数组进行索引"
??public class Solve
??{
???public static void main(String args[])
???{
????System.out.println(args[0]);
????System.out.println(args[1]);
????System.out.println(args[2]);
???}
??}
??这个程序可以接受3个引数,并且把他显示出来,有的人会问了:我们怎么把引数传递进来呢。大家在运行时,要在java Solve后面加个空格,在加三个引数,每个使用空格隔开,例如 java Solve aaa bbb ccc这样程序就会接受到这3个引数,并且把他显示。当你输入引数和接受引数的数量不符时候,会抱ArrayIndexOutOfBoundsException的错误,希望大家注意!

C#实战:斑马ZT410 RFID打印机集成与ZPL指令深度应用 本文详细介绍了在C#系统中集成斑马ZT410 RFID打印机的完整流程与实战技巧。内容涵盖从驱动安装、SDK引入、USB连接建立,到核心ZPL指令的深度解析,特别是针对中文打印与RFID数据写入(^RFW指令)等关键难点提供了解决方案。文章还分享了将ZPL指令融入C#程序的工程化方法、常见错误排查及状态查询、性能优化等进阶应用,旨在帮助开发者高效完成工业级RFID标签打印功能的开发与集成。 阅读详情

相关推荐

微信Android客户端ZT加密算法逆向分析与实战

在移动应用安全领域,加密算法是保障数据传输与存储隐私的核心技术。其原理基于密码学,通过对明文进行特定变换生成密文,防止未授权访问。自定义加密算法则针对特定业务场景和安全需求进行设计,在性能与安全性之间寻求最佳平衡,常见于对数据安全有极高要求的大型应用中。理解这类算法的实现,对于提升应用安全架构设计能力、进行安全审计和漏洞挖掘具有重要价值。本文以微信Android客户端的自定义加密算法ZT为研究对象,通过逆向工程实战,详细阐述了如何利用Jadx、IDA Pro、Frida等工具链进行静态分析与动态调试,还原其

weixin_42530732的博客 770

我的Thinking in Java学习笔记(六)(zt)

???我个人理解初始化和清理的关系就是吃饭和上厕所,正是有了初始化的对象,我们才能使用清理。但是为什么要清理呢?想象一下一个人光吃不拉,是个什么情况?:)难道我们的程序也要像吃饭一样光产生对象,而不去清理使用完毕的对象?任由我们的对象堆积如山,占用系统资源????以构造函数确保初始化的进行??????什么构造函数?构造函数就是一种特殊的函数,当对象产生时,他会被系统自动的调用起来,并且这个函数名称

A Little Bit More...... 1021

无人驾驶感知融合——横摆角速度的多源估计算法解析

本文深入解析了无人驾驶感知融合中的横摆角速度多源估计算法,详细介绍了轮速差法、侧向加速度法、曲率法和惯性传感器直读法四种计算方法及其优缺点。通过卡尔曼滤波实战案例,展示了多源融合算法在提升精度和稳定性方面的显著优势,并探讨了工程实践中的时间对齐、坐标系统一等关键问题。

weixin_31458015的博客 462

Thinking in Java学习笔记(三)(zt)

?第三章?? 控制程序流程???在java的世界中,对象和数据的处理是通过运算符,而选择和判断则是靠控制语句来实现的???使用java运算符?????运算符的2个用处,1、运算符接受引数,并且产生新值,例如 int a=1+1;2、运算符也可以改变操作数的值 例如 i++;?????大多数的运算符都是可以作用与基本数据类型之上的,但是=、==、!=是例外,他们可以作用于任何对象之上。?????

A Little Bit More...... 895

Claude Code Router 401错误修复

claude code router配置相关环境变量问题

如沐春风 6358

实战避坑:泛微E9流程接口与单点登录(SSO)开发全解析(含自定义Action、Restful API与免密登录)

本文深入解析泛微E9流程接口与单点登录(SSO)开发中的关键技术与避坑指南,涵盖自定义Action开发、Restful API鉴权机制及跨系统单点登录实现。通过实战案例与代码示例,帮助开发者高效完成二次开发,解决系统集成中的数据孤岛问题,提升企业信息化建设效率。

weixin_42549451的博客 674

用zt-zip Java库进行zip文件处理

Java 标准库本身自带java.util.zip包,利用该包可以解决zip文件的处理问题。但是该包提供的功能相对底层,想要实现zip文件的处理,需要写一 些代码,该包并没有封装API到调用一个方法就实现了压缩或者解压功能的层次。zt-zip库提供了这种上层的封装,只需要调用一个方法,可以很方便的实 现zip压缩与解压,zt-zip在底层也利用了java.util.zip包。 maven中央仓库里...

扶摇升的IT博客 2819

十二、基于FPGA实现slave SelectMAP配置逻辑

slave SelectMAP配置

weixin_41838250的博客 8754

ZT Exec 使用指南

ZT Exec 是由 ZeroTurnaround 开发的一个强大且易于使用的 Java 应用程序,用于在 Java 应用内部执行外部命令。它提供了对进程管理的高度控制,包括但不限于环境变量设置、工作目录选择以及输入流、输出流和错误流的处理。通过使用 ZT Exec,开发者能够更便捷地集成系统命令或者调用其他可执行文件,增强应用程序的功能性和灵活性。 ## 项目快速启动 要快速启动并使用 ZT...

gitblog_00967的博客 663

Drools vs URule:5个真实项目场景告诉你如何选择开源规则引擎

本文通过电商风控、物流计费、会员体系、保险定价和物联网告警五个真实项目场景,深度对比了Drools与URule两款开源规则引擎。分析了两者在规则复杂度、性能表现、开发运维及适用场景上的核心差异,为技术选型提供基于实战的决策指南。

k6l7m8n9的博客 944

在ARM平台上使用Anbox和LXC进行ARM开发调试

在ARM平台上使用Anbox和LXC进行ARM开发调试是一种强大的工具组合。通过安装和配置Anbox和LXC,以及在LXC容器中运行ARM应用程序,开发人员可以方便地进行ARM开发和调试。LXC(Linux容器)是一种轻量级虚拟化技术,它提供了一种在单个主机上运行多个独立的Linux容器的方法。我们将讨论安装和配置Anbox和LXC,以及如何在容器中运行ARM应用程序。通过上述步骤,你现在可以在LXC容器中运行ARM应用程序,并使用Anbox在ARM平台上进行开发和调试。步骤2:启动LXC容器。

KwmGroovy的博客 735

Java中使用zt-exec执行多shell/Linux命令,执行日志实时推送前端

在Java中执行Linux命令,日志都是在命令执行完返回,现在用zt-exec实现日志实时同步输出 第一步:maven中引用zt-exec <dependency> <groupId>org.zeroturnaround</groupId> <artifactId>zt-exec</artifactId> <version>1.11</version> </dependency> 第二

weixin_41963652的博客 1479

使用C#实现的多人语音视频系统:WebSocket与WebRTC集成

通过上述的代码示例,我们可以使用C#编写一个多人语音视频系统,该系统集成了WebSocket和WebRTC技术。当然,这只是一个简单的示例,实际的多人语音视频系统可能需要更多的功能和优化。通过结合这两种技术,我们可以实现实时的语音和视频通信,支持多人同时参与。在上述代码中,我们创建了一个WebSocket服务器,监听在本地的8080端口,并创建了一个WebRTC连接。接下来,我们将详细介绍如何使用C#编写一个多人语音视频系统,包括使用WebSocket建立连接和使用WebRTC进行实时通信。

TjsReact的博客 1634

我的Thinking in Java学习笔记(五) (zt)

  流程控制   java中的流程控制语句有 if-else  whlie  do-whlie  for   switch-case  但是没有提供goto,他在java中是保留字,不是关键字(以后可能会有哦~)   true和false    java中不支持用数字表示boolean值,如果你一定要使用,请先以表达式将他转换为boolean值,例如if(a==0)   if-else    这个

A Little Bit More...... 917

Unity零基础到进阶 | Unity 探针系统深度解析:光照探针、反射探针与相关技术

在 Unity 渲染管线中,探针(Probe) 是一类通过预计算或实时采样来捕捉空间光照信息的核心组件。它们弥补了传统静态光照贴图和实时光源各自的局限性,是实现高质量、高性能全局光照效果的关键工具。 本文将系统介绍光照探针(Light Probe)和反射探针(Reflection Probe)的作用与用法,分析二者之间的协同关系,并延伸介绍自适应探针体积(APV)、光照探针代理体(LPPV)、探针体积等进阶技术。

努力前行,总会成为自己心中的那道光 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

我的Thinking in Java学习笔记(四) (zt)

   逻辑运算符     逻辑运算符 AND(&&)?? OR(||)? NOT(!)? 都会得到一个boolean值,且他们只能用于boolean身上。逻辑表达式中的boolean无法使用类似于c/c++中的数值代替。注意,boolean被用于一个预期会出现string的地方,其值会自动转换为适当的文本形式,并且假如2个比较的基本数据类型不相同,也是可以比较的~例如10和10.0d,结果也是会返

A Little Bit More...... 1096

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

我的Thinking in Java学习笔记(七) (zt)

     清理:终结与垃圾回收        这里要明白这么几点        1、垃圾回收器只能回收由new产生的对象,如果你使用或产生了非new产生的对象,垃圾回收器是不知道如何把他清理掉的 。这个时候就要使用到finalize()。        2、垃圾回收器的运做方式是这样的,当垃圾回收器打算开始释放你的对象所占用的资源时,会先调用finalize(),并且在下一次垃圾回收动作放生的时候

A Little Bit More...... 932

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java zip 压缩 第三方库,zt-zip:一个java 压缩和解压库

ZIP - convenience methodsContinuous IntegrationQuick OverviewThe project was started and coded by Rein Raudjärv when he needed to process a large set of large ZIP archives for LiveRebel internals. Soo...

weixin_28487433的博客 704

zt-exec 项目常见问题解决方案

zt-exec 项目常见问题解决方案 zt-exec ZeroTurnaround Process Executor 项目地址: https://gitcode.com/gh_mirrors/zt/zt-exec ...

gitblog_00004的博客 637

zt-exec 项目推荐

zt-exec 是一个开源的 Java 项目,旨在简化从 Java 应用程序中执行外部进程的操作。该项目由 ZeroTurnaround 开发,主要使用 Java 编程语言编写。它提供了一个强大且易于使用的 API,帮助开发者更高效地管理外部进程的执行。 ## 项目核心功能 zt-exec 项目的主要功能包括: 1. **简化进程执行**:通过 `ProcessExecutor` 类,开发者...

gitblog_00106的博客 410

开源项目zt-zip简介及新手指南

zt-zip是一个由ZeroTurnaround开发的Java库,专门用于简化ZIP文件的操作。此项目利用`java.util.zip`包进行基于流的访问,同时也提供了对文件系统操作的便利方法。它旨在通过一系列方便的方法来处理大型ZIP归档,无论是解压、打包还是对存档中的条目进行各种操作都变得更加简单易用。zt-zip项目遵循Apache-2.0许可证。 **主要编程语言**: **Java**

gitblog_00998的博客 998

**ZT进程终结者:稳定与高效的Java进程管理方案**

ZT进程终结者:稳定与高效的Java进程管理方案 项目介绍 在Java开发的世界里,进程管理往往是一个复杂而微妙的环节,尤其当涉及到跨平台的进程终止时。**ZT Process Killer(简称ZPK)**正是为了解决这一痛点而生。这个由零转身公司(ZeroTurnaround)精心打造的开源工具,旨在为开发者提供一个稳定的基础功能库,用于从Java环境中优雅地停止运行中的进程。 无论你的目标是...

gitblog_00092的博客 624

zt-process-killer 开源项目教程

zt-process-killer 开源项目教程 1、项目介绍 zt-process-killer 是一个用于在Java中管理进程的开源项目。它提供了API来检查进程是否存活、等待进程结束、以及优雅或强制终止进程。该项目解决了Java中Process.destroy()方法在不同操作系统上的行为不一致问题。在Windows上,该方法强制终止进程,而在UNIX系统上,它则是优雅地终止进程。zt-pr...

gitblog_00887的博客 468

在Java程序中截获控制台输出(ZT)(转贴)

即使在图形用户界面占统治地位的今天,控制台输出仍旧在Java程序中占有重要地位。控制台不仅是Java程序默认的堆栈跟踪和错误信息输出窗口,而且还 是一种实用的调试工具(特别是对习惯于使用println()的人来说)。然而,控制台窗口有着许多局限。例如在Windows 9x平台上,DOS控制台只能容纳50行输出。如果Java程序一次性向控制台输出大量内容,要查看这些内容就很困难了。 对于使用j

ecjtuxuan的专栏 927
上一篇: Java中初学者比较爱出错的运算问题(zt)
下一篇: Thinking in Java学习笔记(三)(zt)
PerseusYan
博客等级 码龄23年 0粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值