Java之路---Day08
2019-10-22-22:28:39
目录
1.Static静态类
2.Static内存图
3.Static静态代码块
4.Arrays类
5.Math类
Static静态类
一旦使用static修饰成员方法,那么它就成为了静态方法,静态方法不属于对象,而是属于类的
注意:
1.如果没有static关键字修饰,那么必须首先创建对象,然后通过对象使用它
2.如果有了static关键字修饰,那么不需要创建对象,直接就能通过类名称来使用它
使用格式:
静态变量:类名称.静态变量
静态方法:类名称.静态方法
注意事项:
1.静态不能直接访问非静态(先有静态内容,后有非静态内容)
2.静态方法当中不能用this(this代表当前对象,通过谁调用的方法,谁就是当前对象)
package demopra;
public class StaticText {
public static void main(String[] args) {
//首先创建对象
MyClass mc = new MyClass();
//然后才能使用没有静态static关键字的内容
mc.method();
//对于静态方法来说,可以通过对象名调用,也可以通过类名称调用
mc.methodStatic();//正确,不推荐使用这种方法
MyClass.methodStatic();//正确,推荐
//对于本来当中的方法可以省略类名称
myMethod();
StaticText.myMethod();//等效于myMethod();
}
public static void myMethod(){
System.out.println("自己的方法");
}
}
package demopra;
public class MyClass {
private int num;//成员变量
private static int numStatic;//静态变量
//成员方法
public void method(){
System.out.println("成员方法执行啦!!!");
//成员方法可以访问成员变量
System.out.println(num);
//成员方法可以访问静态变量
System.out.println(numStatic);
}
//静态方法
public static void methodStatic(){
System.out.println("静态方法执行啦!!!");
//静态方法可以访问静态变量
System.out.println(numStatic);
//静态方法不可以访问非静态变量[重点]
// System.out.println(num);//Non-static field 'num' cannot be referenced from a static context
//静态方法中不能使用this关键字
// System.out.println(this);//'demopra.MyClass.this" cannot be referenced from a static context
}
}
Static内存图

Static静态代码块
格式:
public class 类名称{
static{
静态代码块内容
}
}
特点:
1.当第一次用到本类时,静态代码块执行唯一的一次
2.静态内容总是优先于非静态,所以静态代码块比构造方法先执行
典型用途:
用来一次性对静态变量进行赋值
Arrays类
java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作。
public static string tostring(数组): 将参数数组变成字符串(按照默认格式,[元索1, 元素2,元索...])
public stotic void sort(数组): 按照默认升序(从小到大)对数组的元素进行排序。
备注:
1.如果是数值,sort默认按照升序从小到大
2.如果是字符串,sort默认按照字母升序
3.如果是自定义的类型,那么这个自定义的类需要有Comparable或者Comporator接口的支持。
package demopra;
import java.util.Arrays;
public class ArraysTest {
public static void main(String[] args) {
//定义一个int数组
int[] arr = {10,20,30};
//将int数组按照默认格式变成字符串
String arr1 = Arrays.toString(arr);
System.out.println(arr1);//[10, 20, 30]
int[] arr2 = {50,10,40};
//按照默认大小进行升序
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));//[10, 40, 50]
String[] arr3 = {"c","b","a"};
Arrays.sort(arr3);
System.out.println(Arrays.toString(arr3));//[a, b, c]
}
}
Math类
java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作。
public. static double abs(double num); 获取绝对值。有多种重载。
public static double ceil(double num);向上取整。
public static double floor(double num);向下取整。
public static long round(double num): 四舍五入。
Math. PI代表近似的圆周李常量(double) 。
ckage demopra;
public class MathTest {
public static void main(String[] args) {
//获取绝对值
System.out.println(Math.abs(-23));//23
//向上取整
System.out.println(Math.ceil(3.1));//4.0
//向下取整
System.out.println(Math.floor(3.9));//3.0
//四舍五入
System.out.println(Math.round(3.15));//
}
}
package demopra;
/*
要求:计算对-8.8~11.1数值取绝对值(int)后,大于5或者小于1.1的值的个数
*/
public class MathTest {
public static void main(String[] args) {
//符合要求的数量
int count = 0;
double max = 11.1;//定义初始值max
double min = -8.8;//定义初始值min
for (int i = (int)min; i < max; i++) {
int abs = Math.abs(i);//取绝对值
if (abs>5 || abs < 1.1){//取值要求
System.out.print(i+" ");//-8 -7 -6 -1 0 1 6 7 8 9 10 11
count++;
}
}
System.out.println("总共有:"+count);//总共有:12
}
}
Java之路---Day08的更多相关文章
- Java之路——名词解释(一)
一.开篇 许多人在初接触Java的时候,都会被各种Java的英文缩写名词给弄得头晕脑胀.看一个技术,内容里又会有一堆其他的技术名词,看了半天不知所云.尝试去查一下这些名词的解释,除了非常学术性的解释之 ...
- Java之路——敬JAVA初学者(作者:MoMo)
作为一名大四的毕业生,大学三年过,有得有失.作为一个喜欢编程,喜欢JAVA的人,自学其实是一件美事,很有意思的事.要是能再找个女朋友一起学.嘿嘿,就不枉在大学走了一遭啊! 要离开学校了,还是想留 ...
- Java之路——环境配置与编译运行
本文大纲 一.开篇 二.JDK下载 三.JDK安装 四.环境配置 五.初识Java编译 六.Java与Javac 七.第一个Java程序 八.总结 九.参考资料 一.开篇 通过对之前Java之路的了解 ...
- Java之路 ——初识Eclipse
零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...
- 转行自学 Java 之路的纪念册
前言: 最近在重读<小狗钱钱>,我对其中的"成功日记"概念特别深刻,偶尔也会记一记“成功日记”. 想了想人生走找到今天,阶段性“成功日记”有没有呢? 有的!几年前的一篇 ...
- 是什么让我走上Java之路?
选择方向,很多人都为根据自己的兴趣爱好和自己的能力所长而作出选择.那么是什么让我走上Java之路? 整个高三我有两门课程没有听过课,一门是数学,一门是物理.当时候物理没有听课的原因很简单,我有一本&l ...
- 我的Java之路
前言: 之前在学习python,刚开始的时候跟多数小白一样学习一些基础的知识,比如数据类型,用法,基本的语言结构,学了一段时间实在是学习不下去了,真是太TMD的无聊了,很多方法都记不住,也不知道学了这 ...
- Java之路——初识Eclipse
零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...
- 如何快速成长?我的java之路!
由于一些外部的原因,我不得不从自己熟悉的php领域,转战到java战场.我个人觉得还是有些心得吧,不管怎么样,或多或少可能都会有那么些经历的人,和你一起走在这世上!尽管你不知道TA是谁. 其实,转换一 ...
随机推荐
- leetcode:146. LRU缓存机制
题目描述: 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果密钥 ( ...
- SAS 指定LOG LIST输出
LIBNAME S '.\'; PROC PRINTTO LOG='.\LOG\PRINT_LOG.LOG';RUN; DATA A;SET SASHELP.CLASS (FIRSTOBS=2 OBS ...
- git rebase 多分支操作
- git rebase and git merge 区别 这一次彻底搞懂 Git Rebase - git在工作中正确的使用方式----git rebase篇 Git 操作假设Git目前只有一个分支 ...
- 使用uiautomator2自动化测试app(二)------操作篇
提示: 1. 推荐使用python3以上的版本来进行开发 2. 手机使用安卓手机,版本最好不要太老,一根数据线 3. 安装虚拟机(博主使用雷电) 操作: 这里只简单的介绍一些uiautomator2的 ...
- Oracle 行转列 动态出转换的列
本文链接:https://blog.csdn.net/Huay_Li/article/details/82924443 10月的第二天,前天写了个Oracle中行转列的pivot的基本使用方法,然后, ...
- Linux的tmpfs和ramfs
tmpfs tmpfs是一种虚拟内存文件系统, 它的存储空间在VM里面,现在大多数操作系统都采用了虚拟内存管理机制, VM(Virtual Memory) 是由Linux内核里面的VM子系统管理. V ...
- HIVE出现Read past end of RLE integer from compressed stream Stream for column 1 kind LENGTH position: 359 length: 359 range: 0错误
错误日志 Diagnostic Messages for this Task: Error: java.io.IOException: java.io.IOException: java.io.EOF ...
- tensorflow 13:多gpu 并行训练
多卡训练模式: 进行深度学习模型训练的时候,一般使用GPU来进行加速,当训练样本只有百万级别的时候,单卡GPU通常就能满足我们的需求,但是当训练样本量达到上千万,上亿级别之后,单卡训练耗时很长,这个时 ...
- sql server数据库显示“单用户”的解决方法
USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) --杀掉该进程 ...
- 缓解DDoS && cc 的最佳Linux内核设置 (转)
https://javapipe.com/blog/iptables-ddos-protection/ kernel.printk = 4 4 1 7 kernel.panic = 10 kernel ...