java动手动脑解析
1. 类是java的最小单位,java的程序必须在类中才能运行
2. java函数加不加static有何不同
java中声明为static的方法称为静态方法或类方法。静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量和实例方法。静态方法中不能使用this关键字,因为静态方法不属于任何一个实例。静态方法不能被子类的静态方法覆盖。static 表示是静态的,用static修饰的方法在本类可以直接写方法名调用!在其他类里可以用类名.方法名调用!而不用实例化。如果不加static,则一定要建立对象实例化才能在别的函数里面调用它
3. Java中的String是一个类,而并非基本数据类型
4. 枚举类型
package 课堂测试1;
public class test {
private enum MyEnum{
ONE, TWO, THREE
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
for(MyEnum value:MyEnum.values()){
System.out.println(value);
}
}
}
5.Java中同名变量的屏蔽原则:
每个变量都有一个“有效”的区域(称为“作用域”),出了这个区域,变量将不再有效,同名的变量在指定的范围内有自动屏蔽的原则。即局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。下面以一段程序来进行说明:
public class Test {
private static int value = 1;
public static void main(String[] args) {
int value = 2;
System.out.println(value);
输出结果是:2
显然可以看出value=1的是全局变量,而value=2的是局部变量。
6.另一种数据类型转换方法
除了使用C的强制类型转换方式,还可以通过原始类型的包装类完成类型转换:
适用场景:
同一个数据需要转换为多种类型,并且这一数据需要比较长期的使用。多数情况下,推荐直接使用强制类型转换的方式
7.
8.问题:为什么double类型的数值进行运算得不到“数学上精确”的结果?
答案:这个涉及到二进制与十进制的转换问题。N进制可以理解为:数值×基数的幂,例如我们熟悉的十进制数123.4=1×10²+2×10+3×(10的0次幂)+4×(10的-1次幂);其它进制的也是同理,例如二进制数11.01=1×2+1×(2的0次幂)+0+1×(2的-2次幂)=十进制的3.25。
double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。
举个例子来说,比如要用4bit来表示小数3.26,从高到低位依次对应2的1,0,-1,-2次幂,根据最上面的分析,应当在二进制数11.01(对应十进制的3.25)和11.10(对应十进制的3.5)之间选择。
简单来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。
9.字符串转化为数字和浮点数
int number = Integer.parseInt(numberString );
Integer.parseInt方法将 String 转为数字 ( int)
String firstNumber;
String secondNumber;
double number1;
double number2;
number1 = Double.parseDouble( firstNumber );
number2 = Double.parseDouble( secondNumber );
Double.parseDouble是一个Double类所定义的静态方法
将 String 数据转为double类型的
返回 double类型的数值
记住静态方法调用语法:类名.静态方法名( 参数 )
Double是原始数据类型double的“包装类”,属于引用类型99.Java中输出的加号连接符的使用:
10.
从输出结果我们可以看出只有与 ” ” 字符串直接相连的后面 “+” 加号才会都被定义成连接符。
System.out.println(“X+Y=”+X+Y); 这条输出语句打印的内容 ” ” 字符串后面的两个 “+” 加号都会被定义成连接符,所以是100200而不是300.
System.out.println(X+Y+”=X+Y”); 而这条输出语句打印的内容前面的X+Y会先运算的,因为前面的 “+” 加号还是运算符,Y后面的+加号才是连接符。只有与 ” ” 字符串直接相连时后面 “+” 加号才会都被定义成连接符。
java动手动脑解析的更多相关文章
- Java动手动脑——多态和继承
Java动手动脑——继承和多态 实验一 预估输出答案:100 200 201 202 输出结果:100 200 201 202 输出答案分析:100 创建parent类的对象,调用对象的方 ...
- java动手动脑和课后实验型问题String类型
1.请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? true true false 总结: 使用new关键字创建字符串对象时, 每次申请 ...
- java 动手动脑7
---恢复内容开始--- 一.动手动脑:多层的异常捕获-1 阅读以下代码(CatchWho.java),写出程序运行结果: ArrayIndexOutOfBoundsException/内层try-c ...
- java动手动脑和动手实验
动手动脑一: EnumTest.java: 程序代码: public class EnumTest { public static void main(String[] args) { Size s= ...
- java动手动脑和课后实验型问题第四讲
1.完全"手写代码实现"随机数生成 动手动脑: 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. Modulus=231-1=int.MaxValue Mult ...
- Java动手动脑第四讲课堂作业
动手动脑1 完全“手写代码实现”随机数生成 纯随机数发生器
- JAVA动手动脑多态
动手实验一:下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 先进行自我判断,得出结论后,运行TestCas ...
- JAVA动手动脑异常处理
1>请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. import javax.swing.*; class AboutEx ...
- JAVA动手动脑
1.运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是 ...
随机推荐
- Android JNI和NDK学习(01)--搭建NDK开发环境(转)
本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3095013.html 本文主要介绍“JNI”.“Android NDK”以及 ...
- redhat samba安装配置
突然想要用,好久没配过这玩意了,再次配置一次,记录一下过程. 1.挂载镜像 mount -o loop ~/Desktop/RHEL_5.5\ i386\ DV.iso /mnt ...
- shell脚本之read工具
#!/bin/bash # -*- coding: utf-8 -*- # echo -n "please input your name: " read name echo &q ...
- 一、Core Animation简介
一.Core Animation简介 * Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代 ...
- mysql存在就更新,不存在就新增
INSERT INTO newest_log_operation( ACTION, OPERATION, KEY_VALUE, BUS_KEY, CONTENT, USER_ID, VERSIO ...
- cpu故障定位 top strace pstack
一次服务器CPU占用率高的定位分析 推荐 背景:通过性能监控发现上线服务器cpu某核占用率已经达到了100%,而且是由我们的某个核心服务导致的.幸亏由于我们的服务进程由多个相同worker(线程) ...
- Web services 有两种类型的应用
可重复使用的应用程序组件 有一些功能是不同的应用程序常常会用到的.那么为什么要周而复始地开发它们呢? Web services 可以把应用程序组件作为服务来提供,比如汇率转换.天气预报或者甚至是语言翻 ...
- Spring4 MVC ContentNegotiatingViewResolver多种输出格式实例
本文演示支持多种输出格式,这里 Spring4 MVC应用程序使用了 Spring ContentNegotiatingViewResolver .我们将生成应用程序输出XML,JSON,PDF,XL ...
- Spring MVC集成Log4j
以下示例显示如何使用Spring Web MVC框架集成LOG4J.首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序: 创建一 ...
- struts.xml文件:
struts.xml文件中包含的配置信息,你将修改所采取的措施的开发.这个文件可以被用来覆盖默认设置的应用程序,例如struts.devMode=false和其他设置中定义的属性文件.这个文件可以创建 ...