JDK

实验四 Android程序设计

生来就可爱ヽ(ⅴ<●) 提交于 2021-01-10 15:26:24
20155224 实验四 Android程序设计 实验报告 实验报告封面: 课程:Java程序设计 班级:1652班 姓名:王高源 学号:20165225 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:3:35 - 5:15 实验序号:实验4 实验名称:Android程序设计 实验内容: 实验要求 1.Android Stuidio的安装测试:参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章: 2.参考http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID,安装 Android Stuidio 3.完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,自己学号前后一名同学的学号,提交代码运行截图和码云Git链接,截图没有学号要扣分 4.学习Android Stuidio调试应用程序 实验要求: - 没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程 - 完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书

告诉你一个 AtomicInteger 的惊天大秘密!

淺唱寂寞╮ 提交于 2021-01-10 14:53:41
作者 | cxuan 来源 | Java建设者(ID:javajianshe) 头图 | CSDN 下载自视觉中国 i++ 不是线程安全的操作,因为它不是一个原子性操作。 那么,如果我想要达到类似 i++ 的这种效果,我应该使用哪些集合或者说工具类呢? 在 JDK1.5 之前,为了确保在多线程下对某 基本数据类型 或者 引用数据类型 运算的原子性,必须依赖于外部关键字 synchronized ,但是这种情况在 JDK1.5 之后发生了改观,当然你依然可以使用 synchronized 来保证原子性,我们这里所说的一种线程安全的方式是原子性的工具类,比如 「AtomicInteger、AtomicBoolean」 等。这些原子类都是线程安全的工具类,他们同时也是 Lock-Free 的。下面我们就来一起认识一下这些工具类以及 Lock - Free 是个什么概念。 了解AtomicInteger AtomicInteger 是 JDK1.5 新添加的工具类,我们首先来看一下它的继承关系 与 int 的包装类 Integer 一样,都是继承于 Number 类的。 这个 Number 类是基本数据类型的包装类,一般和数据类型有关的对象都会继承于 Number 类。 它的继承体系很简单,下面我们来看一下它的基本属性和方法 AtomicInteger 的基本属性

Java可变参数

你说的曾经没有我的故事 提交于 2021-01-10 14:52:14
在jdk5之前,可能我们要通过这样的方式来实现可变参数的方法: package www.com.thinkInJava.initializationCleanup; public class VarArgs { static void printArray(Object[] args) { for (Object obj : args) { System.out.print(obj + " " ); } System.out.println(); } public static void main(String[] args) { printArray( new Object[]{ new Integer(23), 23.2f, "sdfdsf", new Double(23.234), new A()}); } } class A{} 通过Object[]数组来实现。 输出如下: 但在jdk5之后,Java终于有可变参数这个特征了。 语法类似于static void printArray(Object... args) package www.com.thinkInJava.initializationCleanup; public class VarArgs { static void printArray(Object...args) { for (Object obj :

UUID简记

99封情书 提交于 2021-01-10 13:19:56
一、概述 wiki上的解释: A universally unique identifier ( UUID ) is a 128-bit number used to identify information in computer systems. 128位的UUID也并非没有重复的可能,理论证明这个重复的概率很小近乎为零以至于可以忽略。 UUID规范的表示格式通常用32个16进制字符表示(也就是"0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /"a" / "b" / "c" / "d" / "e" / "f"这16个字符)。 这32个字符通常被连字符“-”分成5个组(简记为 8-4-4-4-12格式 ),如下: 8a2986cc-256d-470b-bc3d-027113f76553 5个组所表示的含义如下表所示(图表来自wiki): UUID record layout Name Length (bytes) Length (hex digits) Contents time_low 4 8 integer giving the low 32 bits of the time time_mid 2 4 integer giving the middle 16 bits of the time time_hi

纵我不往,知识不来--学习Java第一周心得

爷,独闯天下 提交于 2021-01-10 11:03:14
暑假第一周,也是开始学习 java 的第一周。 本周的主要时间花在了小学期的任务上,但也草草开始了 java 的学习。首先安装好了所需要的软件,然后在网上下载了一份《 Java 基础笔记》,看了前五章 以及相关的视频教程 ,前期的东西都很基础,什么变成语言的介绍, Java 发展史, JDK 的配置,编写规范什么的 , 学了常量、变量、运算符和循环语句 , 目前还很简单 都是一些基本的用法,分别是: 变量与常量; 运算符; 程序控制 ( 顺序结构 , 分支结构 , 循环结构;分支语句,循环语句,其他语句 ) ; 面向对象及类的构造方法; 继承、重载和覆盖 看完这些来说和基础和我们所学过的 C 语言和 C++ 大同小异,为了掌握有些用法,我也把有些代码尝试打了一下,大约花费了两个小时时间,发现分支语句和循环语句的用法比较简单。 但一到类的使用就漏洞百出,对 java 中类的对象的定义不熟悉,也不够细心,觉得写出来的结构不够清晰,这都是以后需要改进和学习的地方。 周而复始,这一周结束下一周又是一个新的开始,下一周要好好把握时间,多进行实践,学习以下内容: 接口和抽象类; 集合与数组; 方法的定义; 递归算法; 对象和数据管理; 以下是几个测试例子: 来源: oschina 链接: https://my.oschina.net/u/4288711/blog/4166764

用 Docker 快速搭建 Kafka 集群

前提是你 提交于 2021-01-10 10:27:52
开源Linux 一个执着于技术的公众号 版本 • JDK 14 • Zookeeper • Kafka 安装 Zookeeper 和 Kafka Kafka 依赖 Zookeeper,所以我们需要在安装 Kafka 之前先拥有 Zookeeper。准备如下的 docker-compose.yaml 文件,将文件中的主机地址 192.168.1.100 替换成你自己的环境中的主机地址即可。 version : "3" services : zookeeper : image : zookeeper build : context : ./ container_name : zookeeper ports : - 2181 : 2181 volumes : - ./ data / zookeeper / data :/ data - ./ data / zookeeper / datalog :/ datalog - ./ data / zookeeper / logs :/ logs restart : always kafka_node_0 : depends_on : - zookeeper build : context : ./ container_name : kafka - node - 0 image : wurstmeister / kafka environment

基于Eclipse的Android开发环境搭建

我的未来我决定 提交于 2021-01-10 09:55:50
1. Java开发环境搭建 1.1 JDK下载安装 JDK(Java Development Kit )是针对Java开发人员发布的软件开发工具包。JDK 是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 根据自己电脑系统版本选择相应JDK,我使用的电脑是win7 64位机,故下载版本为:jdk-8u131-windows-x64.exe,我的安装目录为G:\jdk1.8.0;在安装过程中会询问是否安装JRE,选择安装,JRE属于Java的运行环境,我电脑上的安装目录为:G:\jdk1.8.0\jre; 配置环境变量: 配置JDK的环境变量:计算机——右键——属性 添加两个环境变量,变量名分别为JAVA_HOME与JRE_HOME,变量值分别为JDK与JRE的安装目录。 添加环境变量分别为:%JAVA_HOME%\bin与%JRE_HOME%\bin两个变量之间用英文分号分割。至此JDK安装完成,可以通过打开命令行窗口输入Java -version命令查看JDK否安装是否正确,正确安装后打印如下: 如果提示找不到Java命令,查看环境变量设置是否正确。 1.2.

Java中注解学习系列教程-3

蓝咒 提交于 2021-01-10 08:45:24
本文是《Java中注解学习系列教程》第三篇文章 在前两篇中我们学习了注解的定义、JDK内置注解、注解分类及自定义注解的写法。 本文咱们将学习: 1:自定义注解一些说明 2:自定义注解怎么使用 3:怎么解析自定义注解 一:自定义注解一些说明: 自定义注解的时候,内部成员可被允许的类型又有哪些呢? 1:基本类型(Java中8中基本类型) 2:stirng类型 3:class 4:其他注解 5:枚举类 6:以上五类的数组 如下图: Java官方文档(https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.6.1)原文如下: 类型举例: 需要说明的: 1:如果注解只有一个成员时候,成员名称必须为value 2:注解类可以没有成员,没有成员的注解为:标识注解 二:自定义注解的使用 说明:自定义注解根据其使用范围使用。 如MyAnnotation1这个自定义注解 使用范围是是method和field上。 我们就在method的使用该注解: 语法是: 注解名称(成员名称 = 成员值,成员名称2 = 成员值2) 如下图: 三:注解解析 在使用注解的时候,使用的反射处理的。 public class MyAnnotation1Test { public static void main(String[] args) {

Linux环境安装Hadoo

独自空忆成欢 提交于 2021-01-10 08:32:54
Hadoop Linux环境安装 1. 安装环境 Linux CentOS 7操作系统 JDK1.8 Hadoop 3.1.1 2. 具体步骤 2.1. 安装JDK1.8 官网下载 解压文件(命令:tar -zxvf jdk-8u191-linux-x64.tar.gz) 。 配置环境变量(命令:vi/etc/profile)在末尾添加一下配置: export JAVA_HOME=/home/tools/jdk1.8.0_191 export JRE_HOME=/home/tools/jdk1.8.0_191/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 1 2 3 4 刷新配置文件(命令:source /etc/profile) 验证是否安装成功(命令:java -version) 2.2 安装Hadoop 官网下载 版本3.1.1 解压文件(命令:tar -zxvf hadoop-3.1.1.tar.gz -C hadoop) 配置环境变量(命令:vi/etc/profile)在末尾添加一下配置: export HADOOP_HOME=/home/hadoop/hadoop export HADOOP

JVM学习系列学习二

霸气de小男生 提交于 2021-01-10 08:31:42
JVM学习系列学习二 凯哥java 凯哥java 查看JVM的运行参数 在有些时候我们需要查看JVM的运行参数,这个需求可能有以下两种情况: 1:运行Java命令时候打印出运行参数 2:查看正在运行的Java进程中的参数。 运行Java命令时候打印参数: 运行Java命令时候打印参数,需要添加-XX:+PrintFlagsFinal参数即可。 三:JVM内存模型 JVM的内存模型在1.7和1.8之间有较大的区别。我们先来看看1.7的堆内存模型。 下图就是JDK1.7堆内存模型: 简图: Young年轻代: 在Java中绝大多数新建的Object对象,都是在年轻代区的。先进入eden区。当Eden内存满了之后,会执行一次或多次GC回收之后,没有被回收掉的对象将会被移动到S0或者S1区。 注:Eden的S0、S1的比例为:8:1:1 Tenure(Old Memory)老年代: 在被执行多次GC之后,任然没有没回收的对象,将会被从S0或S1区移动到Old内存区。 Perm(Perm Gen):永久区—在JDK1.8之后就没有这个了。 永久区是一个特殊的JVM内存区。这个区域是用来存储描述Class的元数据。 抛出:java.lang.OutOfMemoryError:PermGen。这个异常的时候,无论怎么设置-Xmx也不管用的。如果想设置这个区域大小参数使用的是:-XX