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是谁. 其实,转换一 ...
随机推荐
- ASP.NET,C#后台调用前台javascript的五种方法
C#后台调用前台javascript的五种方法 由于项目需要,用到其他项目组用VC开发的组件,在web后台代码无法访问这个组件,所以只好通过后台调用前台的javascript,从而操作这个组件.在网上 ...
- 第08组 Beta冲刺(2/4)
队名 八组评分了吗 组长博客链接(2分) 组员1李昕晖(组长) 过去两天完成了哪些任务 文字/口头描述 12月9号了解各个小组的进度与难以攻破的地方,晚上安排开会,安排新的冲刺任务. 重新分配小组及个 ...
- convmv 解决GBK 迁移到 UTF-8 ,中文 文件名乱码
yum install convmv 命令: convmv -f GBK -t UTF-8 -r --nosmart --notest <目标目录> -f from -t to --nos ...
- Centos 7.x卸载ibus黑屏修复及fcitx搜狗拼音安装方法
ibus黑屏修复 百度出来的fcitx安装方法,都要卸载ibus,如果没有注意同时卸载掉的依赖包的话,gnome桌面中的一些关键库也没被卸载. 修复方法很简单,重新安装Gnome sudo yum - ...
- C++11原子操作与无锁编程(转)
不讲语言特性,只从工程角度出发,个人觉得C++标准委员会在C++11中对多线程库的引入是有史以来做得最人道的一件事:今天我将就C++11多线程中的atomic原子操作展开讨论:比较互斥锁,自旋锁(sp ...
- MLflow系列2:MLflow追踪
英文链接:https://mlflow.org/docs/latest/tracking.html 本文链接:https://www.cnblogs.com/CheeseZH/p/11945089.h ...
- SQLServer len 函数, 查字符串长度函数
declare @name char(1000) --注意:char(10)为10位,要是位数小了会让数据出错 set @name='s{sss}fc{fggh}dghdf{cccs}x' selec ...
- tomcat高并发优化的参数优化并查看tomcat线程数
在Tomcat配置文件conf下面 server.xml 中的配置中和连接数相关的参数有: minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10 maxProcessor ...
- [转] 2017年PHP开发者大会 鸟哥 (惠新宸@Laruence)精彩问答
php7.1那个诡异的函数返回类型限定是如何考虑的? 鸟哥:没什么特别考虑,投票投出来的.首先说明一点,我投的是反对票.包括php的命名空间反斜杠我也是非常反对的,但可能由于我并没有对这方面太深的认识 ...
- python 解决 idea 或者 pucharm 编译器在引入自定义的 py 文件的类时,没有提示的问题
1,问题描述: 假设我们有两个问价 a.py 和 b.py 其中分别有 A 类 和 B 类,现在我们想在 b.py 中引用 A 类 语法为 from a import A 虽然这是正确的语法,但是 ...