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 程 ...
随机推荐
- CentOS7.5安装配置Jenkins
一. 硬件配置: 1 GB的RAM 50 GB的驱动器空间 二. 系统环境: [root@Jenkins ~]# cat /etc/redhat-release CentOS Linux releas ...
- VMware安装win7后,安装VMware Tools时报错安装程序无法继续。本程序需要您将此虚拟机上安装的操作系统更新到SP1
具体报错: 倘若你用的是这样的镜像:cn_windows_7_enterprise_x64_dvd_x15-70741.iso 换镜像源.换镜像源.换镜像源! 换成带sp1的iso镜像:cn_wind ...
- noi.ac 字符串游戏
题面 Zhangzj和Owaski在玩一个游戏.最开始有一个空的01串,Zhangzj和Owaski轮流进行操作,Zhangzj先走.每次进行操作的人可以在串上任意位置加一个新的字符,由于串是01串, ...
- 由浅入深,带你用JavaScript实现响应式原理(Vue2、Vue3响应式原理)
由浅入深,带你用JavaScript实现响应式原理 前言 为什么前端框架Vue能够做到响应式?当依赖数据发生变化时,会对页面进行自动更新,其原理还是在于对响应式数据的获取和设置进行了监听,一旦监听到数 ...
- webapi_3 今天真真真全是大经典案例
这个项目一多起来了,还是分个序号比价好一点,你好我好大家好,然后关于这个标点符号的问题,我打字真的很不喜欢打标点符号,不是不好按,按个逗号其实也是顺便的事情,可能就是养成习惯了,就喜欢按个空格来分开, ...
- redis 持久化有几种方式?
面试题 redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的? 面试官心理分析 redis 如果仅仅只是将数据缓存在内存里面,如果 redis 宕机了再重启 ...
- redis 为什么是单线程的?
一.Redis为什么是单线程的? 因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽.既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理 ...
- Eclipse创建Spring XML配置文件插件
引用:https://www.cnblogs.com/lideqiang/p/9067219.html 第一步:在 Eclipse Marketplace仓库中,搜索sts 第二步:安装Spring ...
- Zookeeper 下 Server 工作状态 ?
服务器具有四种状态,分别是 LOOKING.FOLLOWING.LEADING.OBSERVING. 1.LOOKING:寻找 Leader 状态.当服务器处于该状态时,它会认为当前集群中 没有 Le ...
- 信号量,semaphore源代码之我见
信号量,Semaphore,一个限定访问线程数量的工具类,属于并发包java.util.concurrent 里面的类. Semaphore,内部提供了构造方法(包含默认的非公平信号量构造方法,已经可 ...