next

记MAC地址、磁盘序列号的获取

纵饮孤独 提交于 2020-12-15 08:14:49
import java.io.* ; import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.* ; /** * 注意事项: * ① 通过执行vbs 脚本(基于微软 Visual Basic的脚本语言) 来获取信息的方式只适用于windows系统,因为这种方式极度依赖 Windows脚本宿主环境的支持 * ② 关于临时目录,可通过 System.getProperty("java.io.tmpdir") 获取其具体位置。在window下通常为 C:\Users\Administrator\AppData\Local\Temp ,linux系统 下为 /tmp * ③ 命令方式和执行vbs 脚本的方式获取到的磁盘序列号并不相同,具体哪个是真实的序列号,有待验证 * ④ 或可尝试通过arp 命令来获取物理地址,但是arp查询的是高速缓存表的IP-MAC映射关系,包括了网络中与本机通信过的所有主机的MAC-IP映射关系(你可以ping一下远程主机建立相应的映射关系缓存),获取的地址信息或显得过于庞杂 * ⑤ 针对 Linux 系统主要通过执行命令的方式

java for循环的几种写法

百般思念 提交于 2020-12-15 01:47:28
java for循环的几种写法 J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题。 在Java程序中,要“逐一处理”――或者说,“遍历”――某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类的循环也不是不可以,只是不知道是因为for这个词的长度比较短,还是因为for这个词的含义和这种操作比较配,在这种时候for循环比其它循环常用得多)。 对于遍历数组,这个循环一般是采取这样的写法: 清单1:遍历数组的传统方式 /* 建立一个数组 */ int[] integers = { 1, 2, 3, 4}; /* 开始遍历 */ for ( int j = 0; j<integers.length; j++){ int i = integers[j]; System.out.println(i); } 而对于遍历Collection对象,这个循环则通常是采用这样的形式: 清单2:遍历Collection对象的传统方式 /* 建立一个Collection */ String[] strings = { "A", "B", "C", "D"}; Collection

Java for循环的几种用法详解

时光毁灭记忆、已成空白 提交于 2020-12-15 01:45:18
本文非常适合初学Java的 程序员 ,主要是来了解一下Java中的几种for循环用法,分析得十分详细,一起来看看。 J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题。 在Java程序中,要“逐一处理”――或者说,“遍历”――某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当 然,用其它种类的循环也不是不可以,只是不知道是因为for这个词的长度比较短,还是因为for这个词的含义和这种操作比较配,在这种时候for循环比其 它循环常用得多)。 对于遍历数组,这个循环一般是采取这样的写法: 清单1:遍历数组的传统方式 /* 建立一个数组 */ int[] integers = {1, 2, 3, 4}; /* 开始遍历 */ for (int j = 0; j < integers.length; j++) { int i = integers[j]; System.out.println(i); } 而对于遍历Collection对象,这个循环则通常是采用这样的形式: 清单2:遍历Collection对象的传统方式 /* 建立一个Collection */ String[]

JAVA for循环的几种用法

孤街醉人 提交于 2020-12-15 01:44:10
1、遍历数组   a、传统方式 1 // String[] strings = {"甲", "乙", "丙", "丁"}; 2 String[] strings = new String[]{"甲", "乙", "丙", "丁" }; 3 for ( int i = 0; i < strings.length; i++ ) { 4 System.out.println(strings[i]); 5 }   b、简单方式 1 String[] strings = new String[]{"甲", "乙", "丙", "丁" }; 2 for (String str : strings) { 3 System.out.println(str); 4 } 2、遍历Collection   a、传统方式 1 String[] strings = {"甲", "乙", "丙", "丁" }; 2 Collection list = Arrays.asList(strings); 3 for (Iterator itr = list.iterator(); itr.hasNext(); ) { 4 Object str = itr.next(); 5 System.out.println(str); 6 }   b、简单方式 1 String[] strings = {"甲", "乙",

python+ pycharm 环境安装 + pycharm使用

╄→гoц情女王★ 提交于 2020-12-14 20:40:30
一、下载和安装python 1.可以搜索python官网找到官方链接点击进入 2.也可以用以下链接点击进入:https://www.python.org/ 3.进入python后把鼠标移到downloads上,然后看到下拉选项,点击Windows(因为这里是Windows系统所以选择Windows,你是Mac就选择Mac) 4.这里全是迭代的历史版本号,我们选择最新的版本点击进入 5.进入后一直滑到最底下,根据自己的电脑是32位或者64位进行下载 6.下载完成后开始安装,打开下载好的安装包 ①一定要勾选“Add Python to Path”,要不然要手动添加环境变量 ②点击“Customize installation” 7.然后就一直点击下一步,进入选择安装路径,这里我们最好不要安装在C盘,你开心就好 8.确认python是否安装成功:在cmd中输入“python”指令,出现下图中的提示,说明python安装成功 9.如果在cmd中输入“python”指令后报错,则说明环境变量配置有误,这个时候需要手动配置环境变量 10.首先找到python安装路径,把路径拷贝下来,这里我是把python安装到E盘了,所以我的路径在E盘 11.在弹出的环境变量窗口中,点击系统变量下的Path变量,点击编辑,进入Path页面 12.然后点击新建,把python路径拷贝到里面就完成了 13

Pycharm安装详细教程

我怕爱的太早我们不能终老 提交于 2020-12-14 08:26:18
Jetbrains家族和Pycharm版本划分: pycharm是Jetbrains家族中的一个明星产品,Jetbrains开发了许多好用的编辑器,包括Java编辑器(IntelliJ IDEA)、JavaScript编辑器(WebStorm)、PHP编辑器(PHPStorm)、Ruby编辑器(RubyMine)、C和C++编辑器(CLion)、.Net编辑器(Rider)、iOS/macOS编辑器(AppCode)等。pycharm现在在官网[https://www.jetbrains.com/pycharm/download/#section=windows]是分为两个版本,第一个版本是Professional(专业版本),这个版本功能更加强大,主要是为Python和web开发者而准备,是需要付费的。第二个版本是社区版,一个专业版的阉割版,比较轻量级,主要是为Python和数据专家而准备的。一般我们做开发,下载专业版本比较合适。 PyCharm 是我用过的python编辑器中,比较顺手的一个。而且可以跨平台,在macos和windows下面都可以用,这点比较好。是python现在最好用的编辑器,没有之一。 安装包 PyCharm 笔者使用PyCharm2018.3.2,请根据机器是64位还是32位来选择对应的PyCharm版本。(相信绝大部分人都可以很从容的来查看自己机器的位数

Pycharm安装详细教程

这一生的挚爱 提交于 2020-12-14 07:23:11
1、首先去Pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/download/#section=windows,下载PyCharm安装包,根据自己电脑的操作系统进行选择,对于windows系统选择下图的框框所包含的安装包。 2、选择Windows系统的专业版,将其下载到本地,如下图所示: 3、双击下载的安装包,进行安装,然后会弹出界面: 4、选择安装目录,Pycharm需要的内存较多,建议将其安装在D盘或者E盘,不建议放在系统盘C盘: 5、点击Next,进入下图的界面: Create Desktop Shortcut创建桌面快捷方式,一个32位,一个64位,小编的电脑是64位系统,所以选择64位。 勾选Create Associations是否关联文件,选择以后打开.py文件就会用PyCharm打开。 6、点击Next,进入下图: 默认安装即可,直接点击Install。 7、耐心的等待两分钟左右,如下图: 8、之后就会得到下面的安装完成的界面: 9、点击Finish,Pycharm安装完成。接下来对Pycharm进行配置,双击运行桌面上的Pycharm图标,进入下图界面: 选择Do not import settings,之后选择OK,进入下一步。 10、选择Accept,进入下一步: 11、进入激活界面

java基础(18):集合、Iterator迭代器、增强for循环、泛型

六眼飞鱼酱① 提交于 2020-12-13 12:44:58
1. 集合 1.1 集合介绍 集合,集合是java中提供的一种容器,可以用来存储多个数据。 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据。那么,集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的。集合的长度是可变的。 集合中存储的元素必须是引用类型数据 1.2 ArrayList集合存储元素 练习一:ArrayList集合存储5个int类型元素 public static void main(String[] args) { ArrayList <Integer> list = new ArrayList<Integer> (); list.add( 111 ); list.add( 111 ); list.add( 111 ); list.add( 111 ); list.add( 111 ); for ( int i=0; i<list.size(); i++ ){ System.out.println(list.get(i)); } } 练习二:ArrayList集合存储5个Person类型元素 public static void main(String[] args) { ArrayList <Person> list = new ArrayList<Person> (); list.add( new Person

基础数据结构 例:栈、队列、链表、数据、字典、树、等

老子叫甜甜 提交于 2020-12-13 10:59:50
栈 stack 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,把另一端称为栈底。向一个栈插入新元素又称作 进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。 栈是允许在同一端进行插入和删除操作的特殊线 性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为先进后出表。 栈可以用来在函数调用的时候存储断点,做递归时要用到栈! 栈的特点: 后进先出,最后插入的元素最先出来。 Python实现 # 栈的顺序表实现 class Stack(object): def __init__ (self): self.items = [] def isEmpty(self): return self.items == []

redis支持的数据结构

断了今生、忘了曾经 提交于 2020-12-13 10:40:09
redis支持的数据结构 个人读书笔记 简单动态字符串 (String) 链表(list) 字典 跳跃表 整数集合 压缩列表 对象 sds(简单动态字符串) 定义: //记录buf数组中已使用字节的数量 int len //记录buf数组中未使用字节的数量 int free //字节数组 用于保存字符串 char buf [] 使用sds的好处是:1.方便获取当前字符串的长度 2.杜绝缓冲区溢出 3.减少字符串修改带来的内存重分配次数.修改之后的空间,预分配的字空间大小和已 使用的空间大小相等.但是最大为1M. 4.二进制安全.redis api读进去的是一系列二进制 2.链表 链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过只能删节点来灵活的调整链表的长度. 3.字典 字典又称为符号表.,关联数组活映射(map),是一中用于保存键值对的抽象数据结构. 字典的底层是由哈希表实现的,一个哈希表里面可以有很多个哈希表节点,而每个哈希表节点就保存了字典表中的一个键值对. 1.1.哈希表 结构定义: table:哈希表数组.数组中的每个元素都是一个指向dictEntry结构的指针,每个dictEntry结构保存着一个键值对 size:哈希表大小 sizemask:哈希表掩码,用于计算索引值.总是等于size-1 used:该哈希表已有节点的数量 1.2.哈希表节点