【JAVA】学习笔记
对程序员来说,学习一门新的语言,最开始的代码当然是hello world!下面我们从这段代码入手,一步一步来学习Java基础知识。
class Hello{
public static void main(String[]args){
system.out.print("Hello world!");
}
}
楼主所在的公司用的是myeclipse软件,我来简单说一下创建一个文件的步骤:
打开界面,在左边空白处右击选择new->other->双击Java Project -> Project name(项目名称) ->Finish;
以上一个箭头代表一个确认项。项目存放在workspace中,这个工作空间可以自己指定。
然后右击src->选择class->pockage(文件夹名称)->Name(类名):Hello->点Hello.java编辑。
生成入口文件:
一般来说有个选项,点上对勾,创建的文件就自带头文件,如果没有勾,可以写一个Main单词,然后按住Alt + /,然后回车,快速生成入口文件。
点菜单栏的一个绿色的类似于播放的按钮,就可以在控制台查看结果了。
关键字:
在编程语言中有一些实现定义的,有着特殊意义和用途的单词。
保留字:
和关健字一样是事先定义好的,只是暂时没有特殊用途,以后某天会突然被赋予意义和被使用,因此保留下来的单词。goto和const就是Java的保留字。
标识符:
在程序中自定义的一些名称,它是由26个字母大小写,数字0-9,符号_和$组成,规定:
1.不能以数字开头,2.不可以使用关键字,3.见明知意
快捷键:
Alt+/可以快速补全
注释:
一个多行注释中不能嵌套多行注释
/**文档注释
可以自动生成文档
*/
ctrl+alt+/向下复制一行
/**/技巧:
可以使用多行注释查找问题所在,报错地。注释的代码不会被编译成字节码,不占内存。
bin目录下存放字节码文件
xJad反编译工具,将class文件转换成java文件。
常量:
固定的一个值。包括:
1.整数常量 system.out.print(10);
2.小数常量 system.out.print(10.10)
3.字符常量 system.out.print('A')
4.字符串常量 system.out.print("abc")
注意:单引号只能包含一个字符,多字符只能用双引号,双引号也可以包含单个字符。
5.布尔常量 false ,true
6.null常量 system.out.print(null)
关于进制:
0-9十进制:11(D)以数字11为例,各进制的表示方法。
0-1二进制:11(B)。
0-7八进制 :11(O)三位一体
0-9ABCDF十六进制 :11(F)四位一体
Byte字节:
一个字节等于 8个二进制单位,等于8个Bit位。
字节是最小的存储单位
1k=1024B; 1M =1024K ;1G=1024M; 1T=1024G
所以1024对于我们程序员来说,真是一个神圣的数字。
6(B)=110;
11(O) = 001 001(B)三位一体
计算机中,用到的数字,最终都会转换成二进制
数据类型转换规则:
1.运算时,两端的数据 必需要保持一致。
2.如果运算都为数值类型,会自动的吧小的类型转换为大的类型。
3.JVM在运算时,识别的最小值类型为Int。
数据类型包括:基本数据类型和引用数据类型。
基本数据类型:整数、小树、字符、布尔。
引用数据类型:类、数组、接口。
注意:字符串必需用双引号括起来。字符串拼接用加号。
无论什么类型与字符串拼接都将转换成字符串。
格式化符:format
string = string.format("姓名:%s,年龄:%d,身高:%.2f","小明",23,1.76);
/*string.format()是一个静态方法,可以规范代码。*/
格式化时:%s对应字符串,%d对应整数,%.2f表示显示2位小数。
判断前缀和判断后缀:startsWith();endsWith();
demo:
string filename="test.mp4";
if(filename.endsWith(".mp4"))
{
system.out.println("支持视频格式");
}
取余的符号规则:
-10 % -3 得 -1; 10 % -3 得 1; 符号由前面的数决定,跟是否同号无关。
myeclipse快捷键补充:
Refactor | Rename可修改包名、类名、属性名、方法名。
Ctrl+shift+F格式化代码,可读性更好。
Ctrl+F查找某个单词
equals方法:
字符串string使用equals来进行判断
String S1 = new String("nihao");
String S2 = new String("nihao");
if(s1.equals(s2)){
system.out.println("相同");
}
不能写成if(s1==s2){};
compareTo():
compareTo比较 字符串大小,按照字典顺序来进行比较。
string s1 ="liming";
string s2 ="lilei";
if(s1.compareTo(s2)<0){
system.out.println(s1+"位于前面"):
}else{
system.out.println(s2+"位于前面");
}
compareToIgnoreCase();忽略大小写比较。
逻辑运算符:
^异或 :
false ^ true //true; 相同为false,不同为true;
&与 &&短路与:
&两边表达式无论怎样都会执行
&&只要发现false,就不会执行后面的代码,返回false;
|或 ||短路或
|两边表达式无论怎样都会执行
||只要发现true,就不会执行后面的代码,返回true;
方法:
定义:一个小的功能,把一段代码存起来,以后可以重复使用。
打印字母b的方法
static void printB(){system.out.println("b");}
/*返回什么类型,定义时就用什么类型。*/
字符串拼接的方法
static string stringConcat (string str1,string str2)
{
string res = str1+str2;
return res;
}
方法的重载:
在同一个类中,允许方法的名称相同,但是方法的参数不同。我们称这样的叫做方法重载。
有了方法重载,功能相同,参数不同的方法,就不需要多次定义了。
数组:
相同的数据类型的书,有序的组成在一起。
格式:要存放的类型[] 数组名称 = new 数据类型[] {存放的内容};
例子:int[] age = new int[]{};
规则:
1.存放的数据必需有相同的数据类型。
2.存放的数据都是有序的,可通过角标来获取。
也可以先定义,再初始化:
//静态初始化:在创建数组时就已经确定了有多少元素,并把元素都放到了数组 中。
int[] ages;
ages = new int[] {21,22,23,24,25};
//如果不初始化,数组是不能使用的。
//动态初始化:一开始不知道要存哪些数组,所以先定义一个指定的空间大小。
int[] A = new int[100];
A[0] = 1;A[1] =2;
system.out.print(A[0]);
//Array Index out of Bounds Exception这句常见的报错信息是指数组越界。
获取数组的元素个数:数组名称.length;
string[] names = new string[] {"zs","ls","ww"};
system.out.println(names.length);
变量作用域:
一句话理解作用域:定义的变量只在大括号内生效。
forrach()方法:
foreach()可以实现数组快速遍历
可变参数:
(它是数组参数的一种简写,自动把...转换成数组)
static boid sum(int ... args){
int res = 0;
for(int i = 0;i<args.length;i++){
res=res+args[i];
}
system.out.println(res);
}
public static void main(string[] args){
int[] params = {1,2,3,4};
sum(1,2,3,4);
}
【JAVA】学习笔记的更多相关文章
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记-多线程-创建线程的方式
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
- 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...
随机推荐
- js使用占位符替换字符串
js使用占位符替换字符串是一个ES6中的模版字符串语法. 在``中使用 ${} var a = 5; var b = 10; console.log(`Fifteen is ${a + b} and ...
- Scala 知识点掌握2
Scala 基础知识点巩固2 1.集合中常用的函数 sum / max / min # 定义一个List[Int]val list1 = List(1,3,4,6,8,9)# 取集合中所有元素的和li ...
- tomcat server 报错之 More than the maximum allowed number of cookies
More than the maximum allowed number of cookies EVERE: Error processing request java.lang.IllegalArg ...
- Jquery系列:textarea常用操作
1.textarea内容的读取与设置 读textarea文本值可以用name和id.而写入文本值只能用id. <textarea name="content" id=&quo ...
- rest-framework框架——解析器、ur控制、分页、响应器、渲染器、版本
一.解析器(parser) 解析器在reqest.data取值的时候才执行. 对请求的数据进行解析:是针对请求体进行解析的.表示服务器可以解析的数据格式的种类. from rest_framework ...
- flex布局帮助你快速实现布局
flex布局可以帮我们快速布局一些区块,实现你想要的效果,不用再去float,position之类的.我们在布局网页的时候很多时候都是一些特殊布局,flex就能帮我快速去布局,不需要去定位. 任何一个 ...
- MongoDB学习之mongoose
MongoDB介绍: MongoDB是基于Javascript语言的数据库,存储格式是JSON,而Node也是基于JavaScript的环境(库),所以node和mongoDB的搭配能减少因为数据转换 ...
- 如何学习Java?学习Java顺序?
Java相对于Asp.Net或Asp.Net MVC来讲,入门是比较困难和烦琐的!它不像.Net哪样有安装开发工具就可以跑程序了,不需要配置复杂的运行环境. 推荐的学习Java的学习顺序如下: 一.J ...
- 设计模式之模板方法模式(Template)
一.介绍 模板方法模式是编程中经常用到的模式.它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现.这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤. 二.场景举例 当一 ...
- vue cli 构建的 webpack 项目设置多页面
1. webpack-dev-server下的设置(npm run dev) ./build/webpack.dev.conf.js 中,修改 new HtmlWebpackPlugin ,一个页面一 ...