1.Java基础
1.注释
单行注释 // 多行注释 /*回车 文档注释(注解)。/**回车
2.标识符
(1)Java所有组成部分都需要名字,类名,变量名以及方法名都称为标识符
(2)且标识符只能以字母、$或者_ 开始首字母之后可以任意
(3)标识符大小写是敏感的
代码演示:
public class Demo01 {
public static void main(String[] args){
System.out.println("Hello World !");
//变量名属于标识符,标识符只能以 字母、_ 和$ 开头。首字母之后可以任意
//标识符:类名,变量名以及方法名都称为标识符 (标识符大小写是敏感的)
String _dd = "d";
String $dd = "d";
String Dd = "d";
String 王者荣耀 = "d";//变量名也可以是中文(但一般不建议用中文命名)
//String class = ""; 报错 变量名不能是class
}
}
3.Java的数据类型
八大基本数据类型:
整型int byte short long 浮点型 float double 布尔型boolean 字符型char
引用类型 :
类 接口 数组 如String
代码演示
public class Demo02 {
public static void main(String[] args) {
String a = "hello"; //字符串类型
int number = 10;
System.out.println(a);
System.out.println(number);
//八大基本数据类型
//整数类型
int num1 = 10; //int hex = 0x2F01A; //十六进制
byte num2 = 127;
short num3 = 32767;
long num4 = 999999999L; //long类型要在数字后面+L 区分它是long 类型。
//此处用大写L 是为了便于区分 因为用小写l 和 1 很容易混淆,所以一般用大写L。
//浮点类型
float num5 = 50.1F; //加区分它是float类型
float num51 = 93.1f;
double num6 = 501.25666666666666666666666666666666666666666666666666;//double aa = 6e02; //科学计数法
//字符类型
char num7 = '篇'; //不能写两个字 char只能是单个字符 char num8 = 'A';
//字符串, 注意********* String不是关键字,是一个类
//String name = "打赏";
//布尔类型
boolean num8 = true;
boolean num9 = false;
}
}
public class Demo03 {
public static void main(String[] args) {
//整数拓展 进制问题 十进制 二进制0b开头 八进制0开头 十六进制0x开头
int i1 =10;//十进制10
int i2 =0b10;//二进制的10
int i3 = 010;//八进制的10
int i4 = 0x10;//十六进制的10 // 0~9 A~F
System.out.println("输出的都是十进制");
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
//浮点数拓展 银行业务怎么表示?钱
//BigDecimal 数学工具类 来比较
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免用浮点数比较
float f = 0.1f;
double d = 1.0 / 10;
System.out.println(f);
System.out.println(d);
System.out.println(f == d); //false
float d1 = 2123123132132f;
float d2 = d1 + 1;
System.out.println(d1 == d2); //居然是true 因为float有误差
//字符拓展
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int) c1);
System.out.println(c2);
System.out.println((int) c2);
//可强制转换 所有的字符本质还是数字
//编码 Unicode 0-65536 表:97 = a 65 = A
char c3 = '\u0061'; //Unicode 编码
System.out.println(c3); //a
//转义字符
// \t \n ...
System.out.println("------------------转义字符---------------------");
System.out.println("Hello World !");
System.out.println("Hello\tWorld!");
System.out.print("Hello\nWorld!");
System.out.println("HelloWorld!" + "\n");
System.out.println("\n");
System.out.println("Hello World!");
System.out.println("\\n");
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println("//////////////////////////////////////");
System.out.println(sa == sb);
String sc = "hello world";
String sd = "hello world";
System.out.println("//////////////////////////////////////");
System.out.println(sc == sd);
//对象 从内存分析
//布尔值拓展
boolean flag = false;
if (flag == true) {} //等价于 if (flag){}
}
}
4.字节
一字节等于8位
1 Byte = 8 bit
5.类型转换
不同类型转换为同一类型 然后进行运算。
低------->高 **byte short char int long float double ** (小数优先级高于整数)
- 高到低 强制转换 (类型)变量名
- 低到高 自动转换 什么也不用写
数据类型转换注意点
/*注意点
* 1.不能对布尔值进行转换
* 2.不能把对象类型转换为不相干的类型。
* 3.高容量转低容量 强制转换 反之则自动转换。
* 4.转换时,可能存在内存溢出 或 精度问题。
* */
public class Demo03 {
public static void main(String[] args){
System.out.println("Hello World !");
System.out.println("--------字符---------------");
char c1 = 'a';
char c2 = '只';
System.out.println(c1);//a
System.out.println(c2);//中
int a = c1;
System.out.println(a);//char 转int自动转
System.out.println((int) c1);
int a1 = c2;
System.out.println(a1);
System.out.println((int) c2);//输出数字Unicode编码
//所有的字符本质还是数字
}
}
public class Demo4 {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i; //强制转换
System.out.println(i);
System.out.println(b); //内存溢出 因为Byte 字节范围 -128~127
int i1 = 128;
double b1 = i1; //低到高 自动转换
System.out.println(b1);
}
}
public class Demo04 {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i; //强制转换
System.out.println(i);
System.out.println(b); //内存溢出 因为Byte 字节范围 -128~127
int i1 = 128;
double b1 = i1; //低到高 自动转换
System.out.println(b1);
/*注意点
* 1.不能对布尔值进行转换
* 2.不能把对象类型转换为不相干的类型。
* 3.高容量转低容量 强制转换 反之则自动转换。
* 4.转换时,可能存在内存溢出 或 精度问题。
* */
System.out.println("----------丢失精度-----------");
System.out.println(23.7);
System.out.println((int) 23.7); //double转int
System.out.println((int) -45.89f); //float 转int
char c = 'a';//
System.out.println(c);
System.out.println((int) c);
int d = c + 1;
System.out.println(d);
System.out.println((char) d);
char c3 = '\u0061';
System.out.println(c3);
}
}
类型转换常见的问题
溢出问题
public class Demo05 {
public static void main(String[] args){
//操作数比较大时,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;//下划线并不会被输出
System.out.println(money);
int years = 20;
int total = money * years;
System.out.println(total); //输出负数原因:计算的时候溢出。
long total2 = money * years;
System.out.println(total2);//输出负数且不正确原因:1. long = int* int 先进行int*int计算溢出已经出错,才进行自动转换为long,
/*
* 分析:此处long total2 = (long)money * years;
* money * years是int 转long 本应该自动转(long total2 = money * years;)
* 但是 由于money * years数值大于int最大值,已经溢出了。所以应该转为long类型 之后相乘(long)money * years;
* */
long total3 = money * ((long) years); //int*long 先自动转成long 输出正确。
System.out.println(total3);
}
}
1.Java基础的更多相关文章
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 【JAVA面试题系列一】面试题总汇--JAVA基础部分
JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...
- 最适合作为Java基础面试题之Singleton模式
看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...
- java基础练习 字符串,控制流,日历,日期等
1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Java基础知识【上】(转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- java基础学习03(java基础程序设计)
java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...
- Java基础加强之多线程篇(线程创建与终止、互斥、通信、本地变量)
线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
随机推荐
- kali换源及安装docker
kali换源及安装docker 以管理员身份运行. 换源,记得先备份, cp /etc/apt/sources.list /etc/apt/sources.list.bak 然后修改/etc/apt/ ...
- Android 12(S) 图形显示系统 - BufferQueue的工作流程(十)
题外话 疫情隔离在家,周末还在努力学习的我 ..... 一.前言 上一篇文章中,有基本讲清楚Producer一端的处理逻辑,最后也留下了一个疑问: Consumer是什么时候来消费数据的?他是自己主 ...
- Java基础——抽象类
一.概述: 在Java中,一个没有方法体的方法应定义为抽象方法在public 修饰符后加 abstract修饰符,而类中如果有抽象方法,该类必须定义为抽象类在public 修饰符后加 abstract ...
- zabbix图形中文乱码
别的贴子都是说到修改/usr/share/zabbix/include/defines.inc.php中的 define('ZBX_FONT_NAME', 'msyh'); define('ZBX_G ...
- Python knife 一款伪菜刀
Python knife 一款伪菜刀. 设计之初,本想只写个命令行的就可以了,但又想与众不同,想用python写代码,又不想用c#写前端(c#太卡了),万分无奈之下,找到一个替代品,Pyqt, ...
- ModSecurity的规则
一.ModSecurity的规则 基本格式 SecRule VARIABLES OPERATOR ACTIONS SecRule:ModSecurity主要的指令,用于创建安全规则. VARIABLE ...
- activemq 使用经验
activemq 使用经验 ActiveMQ 是apache的一个开源JMS服务器,不仅具备标准JMS的功能,还有很多额外的功能.公司里引入ActiveMQ后,ActiveMQ成里我们公司业 务系 ...
- S120的基本定位功能
转自:https://support.industry.siemens.com/cs/document/84136148/s120%E7%9A%84%E5%9F%BA%E6%9C%AC%E5%AE%9 ...
- Java常用类笔记(学习尚硅谷java基础教程)
一.Java根类Object类1.toString()方法 1)以文本对象返回,故toString()的定义为public String toString() {} 2)默认的字符串输出是:包.类名@ ...
- python3 使用mongo数据库
0让服务器端开启服务 sudo mongod --port 27017 --dbpath /data/db --logpath /data/log --logappend --fork --auth ...