初始化

2019-05-15 Java学习日记 day5

时间秒杀一切 提交于 2020-03-02 21:03:19
1.循环语句 for,while,do....while for语句格式:for(初始化表达式,条件表达式,循环后的操作表达式){循环体}; 执行流程:执行初始化语句,      执行判断条件语句,看其返回值是true还是false;      *如果是true,就继续执行       *如果是false,就结束循环      执行循环体语句;      执行循环后的操作表达式      回到判断语句继续 1 class demofor2 2 { 3 public static void main (String args []){ 4 int sum=0; 5 for(int i=1;i<=100;i++){ 6 if(i%2==0){ 7 sum=sum+i 8 } System.out.println(i); 9 } 10 } 11 } 1-100之间的偶数求和 class demofor4 { public static void main (String args []){ int count=0; for(int i=100;i<=999;i++){ int ge =i%10; int shi=i/10%10; int bai=i/10/10%10; if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){ count ++; //满足条件就自增

Java中final修饰符

你说的曾经没有我的故事 提交于 2020-03-02 20:48:53
final关键字可用于修饰类、变量和方法表示不可见,final修饰变量时,表示该变量一旦获得了初始值就不可被改变。 1.final修饰的成员变量必须由程序员显示的指定初始化值,final修饰类变量:必须在静态初始块或声明该类变量时指定的初始值,而且只能在两个的地方之一。final修饰实例变量:必须在非静态初始块、声明该实例变量或构造器中指定初始值,而且只能在三个地方的其中之一指定。 2.final修饰局部变量,系统不会对局部变量进行初始化,局部变量必须有程序员显示初始化。因此使用final修饰局部变量时,既可以在定义是指定默认值,也可以不指定默认值,在后代码中指定具体的值,但只能为其指定一次值。 3.final修饰基本数据变量时,不能对基本数据变量进行赋值,即基本数据变量不能被改变。但final修饰引用类型变量时,他仅仅保存一个引用,final只保证这个引用的地址不会改变,即一直引用一个对象,但这个对象完全可以改变。 import java.util.Arrays; public class Demo04 { public static void main(String[] args) { // TODO Auto-generated method stub final int[] Array = { 4, 5, 6, 8, 2, 1, 0, }; System.out

AutoMapper快速上手

我的梦境 提交于 2020-03-02 20:05:32
一.什么是AutoMapper AutoMapper是一个简单的对象映射框架(OOM),对象映射原理是把一种类型的输入对象转换为不同类型的输出对象,通俗讲就是通过一些约束讲一种类型中数据自动映射到另一数据类型中 二.AutoMapper的好处 以前的时候我们将DTO对象转换为Model对象或者将Model对象转换为DTO对象时,我们必须将每一个属性都手动映射 //源数据对象 var source = new Source { Id = 1, Name = "张三" }; //目标数据对象 var target = new Target { Id = source.Id, Name = source.Name }; 这样情况如果属性过多会导致浪费大量的时间在对象转换中,于是各种OOM框架应时而生,而AutoMapper便是其一,AutoMapper其优势在于易用性与强大型,AutoMapper除了基本的对象映射之外还可以对进行配置各种需要的映射关系(不同属性名称之间的映射,映射之间的类型转换,支持嵌套映射,支持泛型等),AutoMapper最新版本为6.2.2,而AutoMapper在6.2.0版本中又发生了一次巨大改变,使得开发者能更加简单的使用AutoMapper进行工作。下面是AutoMapper的一个简单示例。 //初始化AutoMapper Mapper

【JAVA基础知识点总结】JAVA数据类型基础

偶尔善良 提交于 2020-03-02 19:19:32
《Java基础知识点总结》这一栏目是对自己学JAVA的整个过程一个总结,把这些JAVA基础知识分享出来,给大家参考参考。 本文主讲JAVA数据类型基础,具体如下: 简单数据类型包括:   整型(Interger): byte, short, int, long   浮点类型(Floating): float, double   字符类型(Textual): char   布尔类型(Logical): boolean 复合数据类型包括:   class   interface   数组   String 常量:   用final. eg: final int NUM = 100; 变量:   局部变量、类变量、方法参数、例外处理参数 简单数据间的优先数据关系:   低-->高: byte,short,char->int->long->float->double 自动转换:   运算中,不同类型数据运算将自动转换,从低级到高级 强制转换:   高级数据要转换成低级数据,需强制转换   eg: int i;   byte b = (byte)i; 运算符:   基本与c语言一致,实例运算符instanceof, 内存分配运算符new 复合语句:   基本与c语言一致 例外处理语句:   包括try, catch, finally, throw 数组:(简单数据类型与复合数据类型的差别)

for循环结构

…衆ロ難τιáo~ 提交于 2020-03-02 14:02:35
1.先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。 2.循环条件的判断。 3.根据循环条件判断结果。true则继续循环,如果为false,则退出循环。 4.执行迭代部分。 5.重复2~4部分直到程序结束。 结构图如下 例题如下 计算100以内的奇数之和。 public class Zuoye01 { public static void main(String[] args) { int num,sum; //数,和 for(num=1,sum=0;num<=100;num+=2){ sum=sum+num; } System.out.println("100以内奇数之和为"+sum); } } 另外在循环中有一个重点是break和continue的使用。 1.break语句用于终止某个循环,使程序跳到循环外的下一条语句。在循环中位于break后的语句将不再执行,循环也停止执行。 break不仅可以用在for循环中还可以用在while和do-while循环中,通常和if条件语句一起使用。 2.continue不仅可以用在for循环中也可以用在while和do-while循环中,并且只能用在循环结构中。 break用于终止循环,跳出循环;continue用于跳出本次循环,进入下一次循环。 来源: https://www.cnblogs.com

Java数组的三种初始化方法

拈花ヽ惹草 提交于 2020-03-02 13:20:54
import org.junit.Test; //import org.testng.annotations.Parameters; public class Demo { @Test public void test() { //数组的静态初始化 int a[] = {2, 0, 1, 9, 2020}; System.out.println("----------静态初始化----------"); getArray(a); //数组的动态初始化方法一 int[] b = new int[10]; for (int i = 0; i < b.length; i++) { b[i] = i; } System.out.println("----------动态初始化1----------"); getArray(b); //数组的动态初始化方法二 int[] c = new int[4]; c[1] = 2; c[2] = 0; c[3] = 9; System.out.println("----------动态初始化2----------"); getArray(c); //数组的默认初始化,默认初始化只指定数组的长度,数组里面每个元素的值都是默认值 int[]d=new int[5]; System.out.println("----------默认初始化----------

Mysql启动报错:Job for mysqld.service failed because the control process exited with error code.

依然范特西╮ 提交于 2020-03-02 10:29:15
centos7上使用yum安装mysql后,启动报错 [ root @localhost ~ ] # systemctl start mysqld Job for mysqld . service failed because the control process exited with error code . See "systemctl status mysqld.service" and "journalctl -xe" for details . 查看日志 在网上搜了一下,说解决办法是在配置文件添加 explicit_defaults_for_timestamp = true 保存退出,启动服务,还是失败,还是一样错误 于是继续复制粘贴百度搜索,说是 mysql初始化的时候,会检测目录 /var/lib/mysql 是否存在,如果不存在则创建;如果存在则检查该文件夹下是否有文件,如果有则报错并停止初始化 解决方法是删除该文件下所有内容 再启动服务: 启动成功! 来源: CSDN 作者: sSor 链接: https://blog.csdn.net/qq_41179691/article/details/104598293

Making your C++ code robust<one>

这一生的挚爱 提交于 2020-03-02 10:27:48
Introduction 在实际的项目中,当项目的代码量不断增加的时候,你会发现越来越难管理和跟踪其各个组件,如其不善,很容易就引入BUG。因此、我们应该掌握一些能让我们程序更加健壮的方法。 这篇文章提出了一些建议,能有引导我们写出更加强壮的代码,以避免产生灾难性的错误。即使、因为其复杂性和项目团队结构,你的程序目前不遵循任何编码规则,按照下面列出的简单的规则可以帮助您避免大多数的崩溃情况。 Background 先来介绍下作者开发一些软件(CrashRpt),你可以 http://code.google.com/p/crashrpt/ 网站上下载源代码。CrashRpt 顾名思义软件崩溃记录软件(库),它能够自动提交你电脑上安装的软件错误记录。它通过以太网直接将这些错误记录发送给你,这样方便你跟踪软件问题,并及时修改,使得用户感觉到每次发布的软件都有很大的提高,这样他们自然很高兴。 图 1、CrashRpt 库检测到错误弹出的对话框 在分析接收的错误记录的时候,我们发现采用下文介绍的方法能够避免大部分程序崩溃的错误。例如、局部变量未初始化导致数组访问越界,指针使用前未进行检测(NULL)导致访问访问非法区域等。 我已经总结了几条代码设计的方法和规则,在下文一一列出,希望能够帮助你避免犯一些错误,使得你的程序更加健壮。 Initializing Local Variables

单例模式、读写锁

喜夏-厌秋 提交于 2020-03-02 10:18:06
单例模式 是设计模式中的一种,是大佬们针对典型场景设计的解决方案。 典型场景:一个对象/一个资源 只能被初始化加载一次 。 例如:你在打游戏的时候,游戏有很多图片资源。希望一个图片只加载一次。 实现方式 : 饿汉/懒汉 饿汉:所有资源在程序初始化阶段 一次性 完成初始化(资源在初始化的时候一次性全部加载,后续只需要使用就可以) template<class T> class single { static T _data;//所以实例化的对象共用同一份资源 T* get_instance() { return &_data; } } 资源初始化的时候会慢一点,但是运行起来以后,会很流畅。 懒汉:资源在 使用的时候 进行初始化(用到的时候再去加载,当然也要保证只加载一次) template <typename T> class Singleton { static T* inst; public: static T* GetInstance() { if (inst == NULL) { inst = new T(); } return inst; } } 在使用的时候加载一次资源,会涉及到线程安全问题。(volatile、static、mutex、二次判断) 使用static保证多个对象使用 同一份 空间资源。(保证资源只被加载一次,实现单例模式) 加锁保护资源申请过程

Java类的生命周期详解

↘锁芯ラ 提交于 2020-03-02 08:15:14
http://www.zhiyangit.com/html/2012/5/1250.htm 生命周期: 加载 加载的类并把类的信息加载到jvm的方法区 连接 做一些加载后的验证工作以及一些初始化前的准备工作,把常量池中的符号引用转换为直接引用 初始化 按照顺序自上而下运行类中的变量赋值语句和静态语句,如果有父类,则首先按照顺序运行父类中的变量赋值语句和静态语句。 使用 引用父类的静态字段,只会引起父类的初始化,而不会引起子类的初始化。 定义类数组,不会引起类的初始化。 引用类的常量,不会引起类的初始化。 卸载 该类所有的实例都已经被回收,也就是java堆中不存在该类的任何实例。 加载该类的ClassLoader已经被回收。 该类对应的java.lang.Class对象没有任何地方被引用,无法在任何地方通过反射访问该类的方法。 如果以上三个条件全部满足,jvm就会在方法区垃圾回收的时候对类进行卸载,类的卸载过程其实就是在方法区中清空类信息,java类的整个生命周期就结束了。 来源: https://www.cnblogs.com/wjw334/p/4372147.html